初めに
Docker上でjenkins環境を構築してみます。
jenkinsの基本的な使い方等は含まれません。
centosの公式リポジトリ
https://hub.docker.com/_/centos/
Dockerfile リファレンス
http://docs.docker.jp/v1.12/engine/reference/builder.html
RedHat Linux RPM packages for Jenkins
http://pkg.jenkins.io/redhat/
ゴール
Docker上で以下の環境を作ることをゴールにします。
- CentOS 7
- jenkins RedHatに登録されているjenkinsの最新バージョン
※実際にはCentOSがなくてもdocker pull jenkinsでjenkinsが使えますあえてCentOS上にたてています。
直接jenkinsコンテナをたてたい方はこちら。
https://hub.docker.com/_/jenkins/
Docker環境
Docker version 17.06.1-ce, build 874a737
※DockerはDocker for Macを利用しています。
Dockerfileの作成
vi Dockerfile
FROM centos:7
# Jenkinsインストールに必要なパッケージインストール
RUN yum -y update
RUN yum -y install wget
RUN yum -y install java-1.8.0-openjdk-devel
RUN yum -y install initscripts
# jenkins yumリポジトリ登録
RUN wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
RUN rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
# Jenkinsインストール
RUN yum -y install jenkins
RUN yum clean all
docker buildでイメージを生成
Dockerfileを作成したディレクトリでbuildコマンドを実行
-t my_project/jenkinsはタブ名なので任意
$ docker build -t my_project/jenkins .
最後にこんな感じで表示されれば成功
Successfully built 9944b09247fa
Successfully tagged my_project/jenkins:latest
ちゃんと出来ていることを確認
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
my_project/jenkins latest 9944b09247fa About a minute ago 971MB
docker runでコンテナ起動
jenkinsの起動でsystemctlを利用するのでprivileged(特権オプション)で起動します。
※デフォルトではコンテナにDockerデーモンを実行する権限はありません。
以下の実行時の権限、Linux 機能、LXC 設定を参照。
http://docs.docker.jp/engine/reference/run.html
$ docker run --privileged -i -d -p 8080:8080 --name jenkins my_project/jenkins /sbin/init
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
ca3ee086889f my_project/jenkins "/sbin/init" 4 seconds ago Up 4 seconds 0.0.0.0:8080->8080/tcp jenkins
jenkinsの起動
docker execでコンテナ内へ
docker exec -it jenkins /bin/bash
再起動時にも自動で起動するように設定
# chkconfig jenkins on
サービス起動
# systemctl start jenkins
# ps -ef|grep jenkins |grep -v grep
jenkins 98 1 10 12:10 ? 00:00:27 /etc/alternatives/java -Dcom.sun.akuma.Daemon=daemonized -Djava.awt.headless=true -DJENKINS_HOME=/var/lib/jenkins -jar /usr/lib/jenkins/jenkins.war --logfile=/var/log/jenkins/jenkins.log --webroot=/var/cache/jenkins/war --daemon --httpPort=8080 --debug=5 --handlerCountMax=100 --handlerCountMaxIdle=20
起動確認
早速 http://localhost:8080 へアクセスすると無事起動していますね!
あとは画面の指示に従い,/var/lib/jenkins/secrets/initialAdminPasswordのパスワードでログインします。
今回は推奨のプラグインでインストールしてみますので、Install suggested pluginsを選択
これで楽しいjenkinsの第一歩ですね!