読者です 読者をやめる 読者になる 読者になる

量産型エンジニアの憂鬱

きっと僕は何物にもなれない。

DockerつかってJenkins2を起動する

CI環境の構築にあたり、Docker上でJenkinsを走らせようと思った。
OSはCentOS7
JenkinsはせっかくなのでJenkins2を使ってみる。

Dockerのインストール

yumでお気軽に。

yum install docker docker-devel
systemctl start docker
systemctl enable docker

Jenkins2の起動

ここに公式イメージの使い方が書いてある。

docker run -p 8080:8080 -p 50000:50000 -v /your/home:/var/jenkins_home jenkins

docker runでdockerを起動。

-pオプションはポートの指定。-p <ホストのポート>:<コンテナのポート>でホストとコンテナ間でポート転送ができる。自分の環境では8080ポートは既に使用していたので、-p 8000:8080に変更。

-vオプションはホストのディレクトリとコンテナのディレクトリをリンクさせる。-v <ホストのディレクトリ>:<コンテナのディレクトリ>mkdir /opt/jenkinsしてそこをjenkinsのホームにすることにした。
そのままだと起動時にPermissionで怒られるので、chown 1000 /opt/jenkinsとしておく。

標準引数は起動するイメージを指定する。jenkinsとするとDocker公式のjenkinsが起動してくれる。jenkins:<バージョン>とするとバージョンを指定できる。jenkins2を使いたい場合は、jenkins:2.0でよさそう。

ということで、自分の環境で起動する場合は以下の通り。

docker run --name jenkins -p 8000:8080 -p 50000:50000 -v /opt/jenkins:/var/jenkins_home jenkins:2.0

Jenkins2の初期設定

起動したらhttp://ホスト:8000にアクセスする。すると以下のような画面が表示された。
f:id:duck8823:20160423095127p:plain

-vオプションで指定したディレクトリに置き換えて、/opt/jenkins/secrets/initialAdminPasswordに書かれている文字列を入力する。

入力したら次はこんな画面。
f:id:duck8823:20160423095422p:plain
素人なのでInstall suggested pluginsにしました。あとから入れられるし。

すると頑張って色々入れてくれる。
f:id:duck8823:20160423095539p:plain

プラグインのインストールが終わったらユーザ作成。
f:id:duck8823:20160423095649p:plain

そのまま画面の指示に従って完了すると、見慣れた画面になる。
f:id:duck8823:20160423095749p:plain

GitHubと連携したかったのでプラグインを確認したところ、既にインストールされていました。次回GitHubとの連携を書こうと思います。

(追記) docker runの時に--nameオプションでコンテナ名を指定できるが、指定しない場合は自動的に名前がつく。
docker psで起動しているコンテナの名前などを確認することができる。起動していないものも含めてすべてのコンテナを見たい場合は、docker ps -a

コンテナに入って操作したい場合は、

docker exec -it <コンテナ名> /bin/bash