1. HOME
  2. 開発・ブログ運営
  3. Docker
  4. Docker で Jenkins するときのあれこれ
2016年07月29日
Docker for Mac のインストール
2016年07月09日
MySQL, WordPress, phpMyAdmin コン ...
2016年07月08日
オライリーの Docker 本(Docker Up & ...
2016年08月01日
Docker for Mac を使って WordPress の ...
2016年05月26日
エックスサーバーから さくらVPS + Docker に引っ越 ...
2016年07月31日
Docker 公式イメージで立ち上げた PHP-FPM コンテ ...

Docker で Jenkins するときのあれこれ

Jenkins も Docker で立ち上げればめっちゃ簡単。しかも使わなくなったらコンテナ(とイメージ)を破棄するだけ。便利すぎます。

取りあえず公式イメージで Jenkins を立ち上げる

JenkinsDocker コンテナで起動するのは、公式イメージがあるので簡単。

とすればコンテナが起動して http://IPアドレス:8080 で Jenkins のダッシュボードにアクセスできる。


データの永続化

データが永続化されないと困るので JENKINS_HOME 以下をホスト OS 側にマウントしておく。Docker の公式イメージの JENKINS_HOME は /var/lib/jenkins ではなくて /var/jenkins_home なので注意。


コンテナのタイムゾーンをホスト OS のタイムゾーンに合わせる

ホスト OS のタイムゾーンが JST だった場合、コンテナのタイムゾーンも JST になります。/etc/localtime をマウントするだけ。


Jenkins(Java) のタイムゾーンを変更する

Jenkins の時刻表示で使われるのはホスト OS のタイムゾーンではなくて Java のタイムゾーン。なので Jenkins ログなどの時刻のタイムゾーンを変更する場合は Java の起動オプションを設定する。

Jenkins 公式イメージの場合は、JAVA_OPTS に設定した値が Java の起動オプションとなるので、


とすればタイムゾーンは JST になる


Jenkins のログとかの日本語対応

Jenkins のログが文字化けする場合がある。これも Java の起動オプションで明示的にエンコードを指定すれば文字化けないので一応、設定しておく。


Jenkins コンテナから Docker コンテナを起動する

例えば Chef レシピの CI をする場合、Docker コンテナを起動して、それに対してレシピの適用 & Serverspec をしてコンテナ破棄、みたいなことをやってますが、その場合には Jenkins コンテナから Docker コンテナが起動できないといけないので、Jenkins コンテナから Docker コンテナを起動できるようにする必要があります。

ホスト OS の /var/run/docker.sock と docker バイナリをコンテナにマウントすることで Jenkins コンテナから Docker コンテナを起動することができるようになります。


docker-compose を使いたい場合は、$(which docker-compose):/bin/docker-compose:ro もマウントしちゃってください。

ここまでの設定をしても「共有ライブラリが見つかりません」的なエラーが出る場合は、対象の共有ライブラリをマウントする必要があります。

私の場合、docker のファイルシステムを overlay にしているせいか、livdevmapper.so が見つからない、とエラーが出ました。なので、

を追加でマウント。

docker-compose にしてみる

これまでの設定を全て docker コマンドで実行しようとすると大変なので、コンテナは一個だけしかありませんが、docker-compose を使うと楽チン。


まとめ

今回は Jenkins コンテナを立ち上げる時の設定をあれこれ書いてみましたが、ほとんどの設定は他のコンテナでも同じことができます。

例えば、私は ホスト OS のタイムゾーンとコンテナのタイムゾーンを合わせたり、とかは全てのコンテナで設定してたりします。

ってことで、Docker で Jenkins が便利すぎるので、じゃんじゃん Docker Jenkins で CI しちゃってください。

でわでわ。








この記事にコメントする





Copyright © 2012 - 2014 MacBook Air とWordPressでこうなった All rights reserved
Powered by WordPress.