Jenkinsを起動するDocker Composeがこちらです

今日わかったこと

* Docker Hubの`Official Image`のJenkinsはDEPRECATED。代わりに`jenkins/jenkins:lts`を使ってねとのこと
* [公式サイト](https://www.jenkins.io/doc/book/installing/docker/)には以下の記載あり。

> The recommended Docker image to use is the Official jenkins/jenkins image (from the Docker Hub repository). This image contains the current Long-Term Support (LTS) release of Jenkins (which is production-ready). However this image doesn’t have docker CLI inside it and is not bundled with frequently used Blue Ocean plugins and features. This means that if you want to use the full power of Jenkins and Docker you may want to go through described below installation process.

DeepL翻訳

> 使用する推奨Dockerイメージは、Official jenkins/jenkinsイメージ（Docker Hubリポジトリより）です。このイメージには、Jenkinsの現在のLong-Term Support（LTS）リリースが含まれています（これは本番環境に対応しています）。しかし、このイメージにはdocker CLIが内蔵されておらず、頻繁に使用されるブルーオーシャンのプラグインや機能がバンドルされていません。つまり、JenkinsとDockerのパワーをフルに使いたい場合は、以下のようなインストール手順を踏むことになるでしょう。

`JenkinsとDockerのパワーをフルに使う`方法をDocker Composeで試したので、その時のログを残します。

# 作業ログ

```console:console
mkdir ~/jenkins-docker
cd ~/jenkins-docker/
```

```Dockerfile:~/jenkins-docker/Dockerfile
FROM jenkins/jenkins:2.303.2-jdk11
USER root
RUN apt-get update && apt-get install -y apt-transport-https \
       ca-certificates curl gnupg2 \
       software-properties-common
RUN curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -
RUN apt-key fingerprint 0EBFCD88
RUN add-apt-repository \
       "deb [arch=arm64] https://download.docker.com/linux/debian \
       $(lsb_release -cs) stable"
RUN apt-get update && apt-get install -y docker-ce-cli
USER jenkins
RUN jenkins-plugin-cli --plugins "blueocean:1.25.0 docker-workflow:1.26"
```

※注：Raspberry Pi 4で試したので`[arch=arm64]`になってますが、多くの場合は`[arch=amd4]`だと思います。

```yaml:~/jenkins-docker/docker-compose.yaml
version: '3.9'

services:
  docker:
    image: docker:dind
    privileged: true
    networks: 
      - jenkins-network
    environment:
      DOCKER_TLS_CERTDIR: /certs
    volumes:
      - ./jenkins-docker-certs:/certs/client
      - ./jenkins-data:/var/jenkins_home
    expose:
      - "2376"

  jenkins-blueocean:
    build: .
    depends_on:
      - docker
    networks: 
      - jenkins-network
    environment:
      DOCKER_HOST: "tcp://docker:2376"
      DOCKER_CERT_PATH: /certs/client
      DOCKER_TLS_VERIFY: 1
    expose:
      - "8080"
      - "50000"
    ports:
      - "8080:8080"
      - "50000:50000"
    volumes:
      - ./jenkins-docker-certs:/certs/client:ro
      - ./jenkins-data:/var/jenkins_home

networks:
  jenkins-network:
    driver: bridge
```

```console:console
mkdir jenkins-data
mkdir jenkins-docker-certs
docker compose up -d
```

しばらくすると、Jenkinsが起動し、8080ポートで接続できます。

![192.168.0.13_8080_login_from=%2F(iPad).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/2738bdc0-0df7-a1f9-dca3-02092e3b659a.png)

`Administrator password`はログに出ているので、`docker compose logs`で確認しましょう。

あとはこんな感じです。

![192.168.0.13_8080_(iPad).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/50c4c7ea-a4f6-22b2-da45-78e5259d1ab5.png)

![192.168.0.13_8080_(iPad) (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/d842e178-a570-431c-91c8-c7d6e1593bb5.png)

![192.168.0.13_8080_(iPad) (2).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/197fb659-9ac5-6d0d-a06d-1234f23907ee.png)

![192.168.0.13_8080_(iPad) (3).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/07204d43-90bf-6bd0-f669-e2e32097af3f.png)

![192.168.0.13_8080_(iPad) (4).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/58c0a5ab-1eb8-cb0a-be0f-e714066cd818.png)

![192.168.0.13_8080_(iPad) (5).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/41574/56ece5eb-d673-4486-9f9c-428cc34bc0c6.png)