Jenkinsを構築してみる

# jenkinsをdockerで立ててみる
    
- jenkinsのダウンロード
    - 下記コマンドでダウンロードする。
   

```
dev@devPC % docker pull jenkins/jenkins
``` 

- jenkins/jenkinsを指定している理由は、jenkinsだけだと、開発が2年前くらいから行われていないものだからです。
            - 検索ワード： docker image jenkins
            - 公式ページを参考にしてください。
            
    - jenkins/jenkinsを指定することで、community版をダウンロードできます。⭐︎重要

初期の状態では、docker imgesでイメージがありませんでしたが、docker pull コマンドを叩いたので、jenkinsのdocker imageがダウンロードされました。


```
dev@devPC　% docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
dev@devPC vscode % docker pull jenkins/jenkins
Using default tag: latest
latest: Pulling from jenkins/jenkins
3192219afd04: Pull complete 
17c160265e75: Pull complete 
cc4fe40d0e61: Pull complete 
9d647f502a07: Pull complete 
d108b8c498aa: Pull complete 
1bfe918b8aa5: Pull complete 
dafa1a7c0751: Pull complete 
c7ea2536eca3: Pull complete 
93cd9802fbf0: Pull complete 
914e80de9b11: Pull complete 
f9f7636976c7: Pull complete 
481a5bdd1dbb: Pull complete 
aed9f0ab04f0: Pull complete 
8a5abf9ab74a: Pull complete 
762802bacf71: Pull complete 
0f1b2057bd27: Pull complete 
36767acdbd7f: Pull complete 
094c8277f52e: Pull complete 
bb82181bc497: Pull complete 
Digest: sha256:a65adcb008637acdeffb81c1295ad16c0d4c9b550de4a9ebe6e22798854a9417
Status: Downloaded newer image for jenkins/jenkins:latest
docker.io/jenkins/jenkins:latest
dev@devPC vscode % docker images 
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
jenkins/jenkins     latest              cf9ba86fd2ce        31 hours ago        619MB
dev@devPC % 
```

- docker imagesはdockerのimageを確認するコマンドです。
    - 検索ワード：docker images　コマンド


これで、自分のPCにjenkinsを建てるためのimageをダウンロードすることができました。

# Jenkinsを立ててみる。
Jenkinsのイメージがダウンロードできたら、Jenkinsを動かしてみようと思う。Jenkinsを実行するときのコマンドについては、Docker hubの公式ページで、jenkins/jenkinsのタグを検索してください。jenkins/jenkinsのページの下の方に、read documentation for usageがあるので、そこんリンクに行ってください。そこに起動のコマンドが書いてあります。
私は下記のコマンドで立てました。

```
# docker run -d --name jenkins_kun -v /Users/dev/jenkins:/var/jenkins_home -p 48080:8080 -p 50000:50000 jenkins/jenkins
```

実行結果はこちら

```
dev@devPC jenkins % docker run -d --name jenkins_kun -v /Users/dev/jenkins:/var/jenkins_home -p 48080:8080 -p 50000:50000 jenkins/jenkins
f724fb7e5b604931cc35f0e9c93c56574e7d62e11336db8dfa25272a5179cbac
dev@devPC jenkins % docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                               NAMES
f724fb7e5b60        jenkins/jenkins     "/sbin/tini -- /usr/…"   2 seconds ago       Up 2 seconds        0.0.0.0:50000->50000/tcp, 0.0.0.0:48080->8080/tcp   jenkins_kun
dev@devPC jenkins
```
オプションについてはこちら
-d：デタッチモードで起動する。containerから抜けたりしたときに止まらない。

--name:名前指定する。今回はjenkins_kunと言う名前にしました。名前を付けない場合には、docker engineが自動でつけてくれます。name-generatorなるものがあって、それから生成されているらしい。

-v：dockerホストのディレクトリをバインドする。基本的に、データはコンテナのなかに生成して、コンテナを破棄するときになくなります。ホストとコンテナをバインドしておけば、ホスト側にデータが残ります。
jenkinsのデータは、全てコンテナないの/var/jenkinsのなかに格納されているので、ホストの自分の好きなところ(今回私が指定したのは、/User/dev/jenkins)と書いておけば、まあ良い。

-p:ポートの設定。ホストPCの48080にアクセスすると、コンテナないの8080ポートにアクセスできる。JenkinsとかGitlabとかたくさん立てようと考えているので、今回は48080ポートをJenkinsのポートにしてみました。50000はjenkinsの起動のReadmeに書いてあったので、書きました。

動いているので、localhost:48080でアクセスする。
アクセスしたら、パスワード入力を求められるので、コンテナのなかに入って、パスワードを見る必要がある。
下記コマンドで、コンテナのなかに入ることができる。場所は画像に書いてある場所である。

```
docker exec -it jenkins_kun /bin/bash
```
また、jenkns_homeはホスト側にマウントしてあるので、そこを参照することも可能である。


<img width="1000" alt="jenkins.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412423/e249bc87-c85d-c3b2-cdbc-2defbd7ef838.png">

このあと、おすすめのプラグインのダウンロードとインストールを走らせる。おすすめを走らせたときにインストールされるプラグインはこれらである。
<img width="1001" alt="jenkins2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/412423/786f882e-0ea4-9355-3292-52b47f8d14cf.png">

LDAPとかPipelineとかGitなどがはいっていますね。





dockerの詳細については、ここでは述べませんが、dockerにはイメージとコンテナの概念があリます。それぞれの、詳細については、次の検索ワードで検索すれば良いです。

- docker コンテナ イメージ　違い

そのうち、自分なりにまとめて、あとで述べたいと思います。

終わり