Jenkins環境をdocker上に作る
HDDが吹っ飛んだ
Jenkinsは業務で使用していて、社内のサーバーで動作させていた。
そのサーバーのHDDが先日いきなりお亡くなりになってしまった。
バックアップも特に取っていなかった(あかん)ので、またJenkins環境を構築するためにメモ。
以前はサーバーマシンに直接インストールして使っていたが、今回はdocker上に作ってみようと思う。
事前準備
docker をインストールしておく。docker desktopを選択してダウンロードする。 あとはdocker IDを作るなど。
構築手順
dockerイメージをpullする。なんとなくBlue Oceanを使ってみたかったので jenkinsci/blueocean にしてみた。運用は後から考える。
$ docker pull jenkinsci/blueocean
続いてJenkinsのデータを格納するディレクトリを任意の場所に作る。
$ mkdir $HOME/jenkins_home
docker runする。
docker run --rm -d -p 8080:8080 -v $HOME/jenkins_home:/var/jenkins_home jenkinsci/blueocean
--rm
はコンテナ終了時に自動でコンテナを削除するオプション。-d
はバックグラウンド実行するオプション。つけないとこのターミナルがJenkins動作モードになって、他のコマンドを受け付けなくなる。-p 8080:8080
はホストマシンとコンテナのポートのマッピングを行う。-v
でホストのディレクトリとコンテナのディレクトリをマウントする。$HOME/jenkins_home
にコンテナ上のJenkinsのデータが格納される。
また-v /var/run/docker.sock:/var/run/docker.sock
とすると、コンテナの中から新たにdockerコンテナを起動できるようになるとのこと。
ただホストで動いている他のコンテナが見えたり、ホストマシンのルートが取れたりするらしく注意が必要そう。いったんは使用しないでおく。
これでJenkinsが起動する。
Jenkinsのセットアップ
上のコマンドを実行してしばらくするとJenkinsのセットアップ画面に遷移する。
docker run した際に-vオプションでマウントしたディレクトリにsecrets/initialAdminPasswordがあるので、そのパスワードをコピーして貼り付ける。
次にプラグインのインストールを行う。オススメとカスタマイズがあったが、特にこだわりなかったのでオススメの方を選択。
管理者ユーザーの作成、URLの指定など。
完了。Start using Jenkins をクリックするとJenkinsのホーム画面へ遷移する。
ここまで来るのはとても簡単。
dockerを止めるときはdocker ps
で止めたいコンテナIDを確認した後docker stop <containerID>
でOK。
--rm
オプションをつけるとコンテナイメージが自動で削除されるので、再開するときはまたdocker runする。
Jenkinsのデータは$HOME/jenkins_home
にあるので問題ない。
今回はここまで。