理由はそのうち考える

まずやってみよう

Jenkins環境をdocker上に作る

HDDが吹っ飛んだ

Jenkinsは業務で使用していて、社内のサーバーで動作させていた。
そのサーバーのHDDが先日いきなりお亡くなりになってしまった。
バックアップも特に取っていなかった(あかん)ので、またJenkins環境を構築するためにメモ。 以前はサーバーマシンに直接インストールして使っていたが、今回はdocker上に作ってみようと思う。

事前準備

docker をインストールしておく。docker desktopを選択してダウンロードする。 あとはdocker IDを作るなど。

www.docker.com

構築手順

dockerイメージをpullする。なんとなくBlue Oceanを使ってみたかったので jenkinsci/blueocean にしてみた。運用は後から考える。

hub.docker.com

$ 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コンテナを起動できるようになるとのこと。
ただホストで動いている他のコンテナが見えたり、ホストマシンのルートが取れたりするらしく注意が必要そう。いったんは使用しないでおく。

kotaroooo0-dev.hatenablog.com

これでJenkinsが起動する。

Jenkinsのセットアップ

上のコマンドを実行してしばらくするとJenkinsのセットアップ画面に遷移する。

f:id:aganik:20201220143202p:plain
パスワード入力画面
docker run した際に-vオプションでマウントしたディレクトリにsecrets/initialAdminPasswordがあるので、そのパスワードをコピーして貼り付ける。

次にプラグインのインストールを行う。オススメとカスタマイズがあったが、特にこだわりなかったのでオススメの方を選択。

f:id:aganik:20201220143157p:plain
プラグインインストール中

管理者ユーザーの作成、URLの指定など。

f:id:aganik:20201220143153p:plain

f:id:aganik:20201220143149p:plain

f:id:aganik:20201220143207p:plain
セットアップ完了

完了。Start using Jenkins をクリックするとJenkinsのホーム画面へ遷移する。 ここまで来るのはとても簡単。 dockerを止めるときはdocker psで止めたいコンテナIDを確認した後docker stop <containerID>でOK。 --rmオプションをつけるとコンテナイメージが自動で削除されるので、再開するときはまたdocker runする。 Jenkinsのデータは$HOME/jenkins_homeにあるので問題ない。

今回はここまで。