先日こういう話があったばかりだが、、、
CIツールのdroneは仕事でよく使っている。非常に便利なものであって、広まって欲しいなと思っているんです。
そこで、自分でローカルで遊ぶのはどうやるんだろう、と思った。昔はdroneにCLIがついていて、MacでそのCLIをコンパイルしておいて、docker-machineで立てたdockerを相手にローカルディレクトリの.drone.ymlを実行するみたいなことができたんだけど、今はもうできなくなっているようだ。
そこで、docker-composeでコンテナを立てることを考える。drone自身はアカウントを持たないので、ログインするアカウントとして連携できるリポジトリサーバが必要。リポジトリサーバは色々対応しているが、こちらもローカルで立てるんなら、gogsが最も手軽だろう。
そこで、適当にディレクトリを掘って、こういうdocker-compose.ymlを作る
https://gist.github.com/wtnb75/a273b8c03131fe8a7b561a2177a11406
そして、実行する。
# DRONE_SECRET=$(uuidgen) docker-compose up -d
Creating network "drone_default" with the default driver
Creating gogs
Creating drone
Creating agent
# open http://$(docker-machine ip):3000
# open http://$(docker-machine ip):8000
3000の方がgogsで、8000の方がdrone。gogsはsqliteでセットアップする。他のDBMSにしたい時は適宜docker-compose.ymlをいじってDBのコンテナを立てればいいと思います。URLやドメイン名はdocker-machine ipのIPアドレスを使うといいだろう。リポジトリを作ってpushしてみよう。