DockerコンテナでJenkinsを構築

## Jenkinsとは
そもそもJenkinsとは、オープンソースのCI/CD(継続的インテグレーション/継続的デリバリー)ツールの1つです。  
ビルド・テスト・デプロイを自動化することによって、より早く正確に構築することができます！

## Jenkins構築
以下のサイトを参考にJenkinsコンテナを立てていきます。
https://github.com/jenkinsci/docker/blob/master/README.md

Jenkinsコンテナを立てるだけであれば以下のコマンドだけでも動作しますが、 
今回はオプションも追加していこうと思います。
```
docker run -p 8080:8080 jenkins/jenkins:lts-jdk17
```


|オプション | |  
|---|---|
|-d |バックグラウンドでコンテナを起動  |
|--name |コンテナ名を指定  |
|-p  |ポートを指定  |
|--restart=on-failure |終了ステータスが「0」以外の場合に再起動  |
|-v |ディレクトリをコンテナにマウント (ホストディレクトリのパス:コンテナのパス) |

イメージをpullしていない状態で、`docker run`すると自動でイメージがダウンロードされます。
```
[root@centos8 ~]# docker run -d --name jenkins -p 8080:8080 --restart=on-failure -v jenkins:/var/jenkins_home jenkins/jenkins:lts-jdk17
Resolved "jenkins/jenkins" as an alias (/var/cache/containers/short-name-aliases.conf)
Trying to pull docker.io/jenkins/jenkins:lts-jdk17...
Getting image source signatures
Copying blob 20f6ee282779 done
~
~
Copying config 41e27c2a57 done
Writing manifest to image destination
81fe033a4a178f7cbd60443e393f0c3e00b973194dbb931025404b8629ec5eec
```
コンテナが作成できました！
```
[root@centos8 ~]# docker container ls
CONTAINER ID  IMAGE                                COMMAND     CREATED         STATUS         PORTS                   NAMES
81fe033a4a17  docker.io/jenkins/jenkins:lts-jdk17              59 seconds ago  Up 58 seconds  0.0.0.0:8080->8080/tcp  jenkins
```

ブラウザアクセスした際に、ログインパスワードが求められるため、事前に確認しておきます。

`docker logs jenkins`と打鍵すると以下のようにログが表示されるので、そこからパスワードを控えます。

以下では`c1d3b456d11a4af992fa925af0dfc248`がパスワードになります。
```
[root@centos8 ~]# docker logs jenkins
*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

c1d3b456d11a4af992fa925af0dfc248

This may also be found at: /var/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************
```

## ブラウザアクセス
ブラウザ(http://< IPアドレス >:8080)にアクセスすると、Administrator passwordを求められるので、先ほど控えたパスワードを入力し、「Continue」をクリック  
![WS000001.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/2a30a1bb-38c8-4eba-5345-cd049065e433.jpeg)  

次にプラグインをインストールしていきます。
今回は「Install suggested plugin」を選択しました。

自分で必要なプラグインを選んでインストールしたい方は右側の「Select plugins to install」を選択してください。
![WS000002.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/b5352401-1289-80e7-1a70-b43d68e56d99.jpeg)  

![WS000003.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/64af90c0-9462-4892-5fcf-3292ba0e72a9.jpeg)  

プラグインのインストールが完了すると、今ログインしているユーザ以外のユーザ作成画面に移ります。
今回は「Skip and continue as admin」をクリック。
ユーザを作成する場合は項目すべて入力し、「Save and Continue」をクリックしてください。
![WS000004.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/340a1487-4e0a-7000-0142-074657858b19.jpeg)  

Instance Configuration画面で、Jenkins URLを設定します。
![WS000006.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/eb42294b-0bcf-d941-3606-2d91fadff115.jpeg)  

準備完了しました！
「Start using Jenkins」をクリック。
![WS000007.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/aaae2aee-2958-63e7-5bee-860f4f192bb8.jpeg)  

ダッシュボードが表示されれば完了です！
![WS000008.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2844260/f83ffb6d-72c9-076f-c1b9-65e08093fd98.jpeg)