概要
Docker流行ってるので勉強も兼ねてdroneのイメージを作ってみた。CIツールといえばJenkinsなイメージが強いけど、コンテナ内に環境を閉じ込めてテストとか色々出来るdroneはクリーンで大変に気持ちいいね。
で、せっかくDockerなのでその強みを活かして、手元にdrone+GitLabの環境をfig up一発で構築できるfig.ymlのサンプルも作ってみた。
Dockerとfigが使える環境ならなんでも動くはず。boot2dockerでも試せる。
手順
- 上記ファイルをfig.ymlにして適当なディレクトリに保存
- GITLAB_HOSTをDockerホストのIPアドレスに書き換える
- boot2dockerならboot2docker ipで表示されるやつ
- fig up
- GitLabのセットアップ
- DockerホストIP:20080にアクセスしてGitLabを開く
- root / 5iveL!fe でログイン
- 適当にパスワード変更して再ログイン
- SSH公開鍵登録
- 適当な名前でレポジトリを作る
- droneのセットアップ
- DockerホストIP:10080にアクセスしてdroneを開く
- 先ほどGitLabで変更したパスワードでログイン
- rootアカウントのメールアドレスのデフォルトは admin@example.com
- Syncing your Account...のあと、先ほどGitLabで作ったレポジトリが表示されるので、選択してActivateする
- こうするとGitLab側のWeb HooksにdroneのビルドをキックするURLが登録される
- 先ほど作ったレポジトリをクローンしてきて.drone.ymlをcommitしpush
- droneでビルドがうごく
.drone.ymlはとりあえずこんな感じのものでもよい。
.drone.yml
image: "bradrydzewski/ruby:2.0.0"
script:
- echo "Hello"
最初にビルド用のイメージをpullしてくるのに時間がかかるが、最初の一回だけなのでそれ以降は比較的速い。scriptのところにコマンドを並べると色々試せる。imageには公開されている物なら何でも指定できるが/usr/local/bin/git
が無いと、そのビルド対象のレポジトリをクローンするところでコケて止まるので、自分でビルド用のイメージを作る際は要注意。
droneは設定がシンプルで少なくて分かりやすいし、テストやビルド環境はイメージさえ用意してしまえばどんなものでも出来ちゃうところがいい。あと何より自分でホスト出来るってのは大きい。