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なるものを紹介されました。

http://readme.drone.io/usage/

なんかかっこいい!楽しそう!

次これやってみます!

Written on January 19, 2017