docker-compose使ってjenkins環境を作ったらスケーラブルでいい感じに仕上がった
dockerでjenkins環境構築してみたら意外にめんどくさかったのですが、 スケールしやすそうでいい感じに仕上がりました(と思う)
TL;DR;
githubに公開してます。こちらへどうぞ oreore-jenkins
背景
- テストをdockerで実行したかった
- オンプレ環境でCIといえばjenkinsしかないじゃん(と思っていた)
- jenkinsって環境がサイロ化しやすいからdockerでコード化しよー(dockerでやりたかっただけ)
- docker-compose使えばポータビリティ良くなりそ〜(他の手助余裕がなかった)
って感じの経緯です。
やったこと
jenkinsのマスターとスレーブを立ち上げ、スレーブでciのタスクを実行する構成を作成しました
ハマったこと
テストをdockerで実行する必要があったんですが、 docker上のjenkinsにdockersockをマウントしてdockerを実行しようとすると、 権限周りで結構ハマりました。
jenkinsユーザーをdockerグループに追加すればよいのですが、 コンテナ内のdockerグループのgidとホストのgid揃える必要があって、 macにbrewでインストールした環境のdockerはdaemonグループで、 一般的なlinux環境に普通にインストールするとdockerグループだったりして、 自動化するの面倒なかんじ(/var/run/docker.sockのグループからgidひっぱるとかやりたくねーw)
感想
はじめは、興味本位でjenkinsをdockerで動かしてただけだったのですが、 いろいろ弊害があり、思ってたよりやりがいがありました。
仕上がってみると、いろいろメリットが見えてきて、やってよかったと思ってます。
っとある程度仕上がったところで、droneなるものを紹介されました。
なんかかっこいい!楽しそう!
次これやってみます!
Written on January 19, 2017