CentOS7 の docker で n 個の Jenkins 環境を用意した話
概要
CentOS7 の docker で Jenkins 環境を用意した話
コンテナ内の Jenkins にアクセスするにはポートフォワーディングをする必要がある.
また,Jenkins をインストールしたコンテナイメージをコミットしておくことで,n 個の Jenkins 環境を用意に作成できる.
(プログラムごとに Jenkins を用意する手間がへる?)
Jenkins を入れたコンテナイメージを作成する
// コンテナを動かす (今回は CentOS6 のコンテナないに Jenkins を構築する) # docker run -it --name jenkins01 centos:centos6 /bin/bash bash-4.1# // Jenkins をインストールするために必要なものを入れる bash-4.1# yum -y install wget bash-4.1# yum -y install java-1.7.0-openjdk.x86_64 // Jenkins をインストールする bash-4.1# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo bash-4.1# rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key bash-4.1# yum -y install jenkins // OS 起動時にサービスが起動するようにする bash-4.1# chkconfig jenkins on // コンテナを一旦終了する bash-4.1# exit exit
コンテナをコミットしておく
// コンテナをコミット # docker commit jenkins01 kawa0810/jenkins:ver1.0 // イメージ作成につかったコンテナは削除する # docker rm jenkins01
Jenkins にアクセスできるようにコンテナを起動する
// コンテナないの Jenkins にアクセスさせるためにポートフォワーディングする // ポートフォワーディングは -p <ホストで割り当てるポート>:<コンテナのポート> で指定する # docker run -it -p 8000:8080 --name jenkins01 kawa0810/jenkins:ver1.0 /bin/bash bash-4.1# // Jenkins を起動する bash-4.1# service jenkins restart <Jenkins サービスの起動に時間がかかる> // Jenkins へアクセスするにはブラウザで以下にアクセス // http://<ホストの IP アドレス>:8000
n 人の Jenkins を用意する
// 「ポートフォワーディングでホストで割り当てるポート」を調整すれば // n 個の Jenkins コンテナを用意できる // 1個目 # docker run -it -p 8000:8080 --name jenkins01 kawa0810/jenkins:ver1.0 /bin/bash bash-4.1# // 2個目 (ホストのポートとコンテナ名を変える) # docker run -it -p 8001:8080 --name jenkins02 kawa0810/jenkins:ver1.0 /bin/bash bash-4.1# // 3個目 (ホストのポートとコンテナ名を変える) # docker run -it -p 8002:8080 --name jenkins03 kawa0810/jenkins:ver1.0 /bin/bash bash-4.1# ...
[補足] コンテナ内の Jenkins が使うポートを変更する場合
// CentOS では以下のファイルを変更する模様 bash-4.1# emacs /etc/sysconfig/jenkins -nw // ファイルを変更後に Jenkins を再起動する bash-4.1# service jenkins restart