「Jenkins」の版間の差分
ナビゲーションに移動
検索に移動
105行目: | 105行目: | ||
$ docker run \ | $ docker run \ | ||
--name jenkins-blueocean \ | --name jenkins-blueocean \ | ||
− | -- rm \ | + | --rm \ |
--detach \ | --detach \ | ||
--network jenkins \ | --network jenkins \ |
2021年5月28日 (金) 12:31時点における版
| Docker |
目次
Jenkins
Install(Docker)
ブリッジネットワークの作成
$ docker network create jenkins
$ docker network create --driver bridge --subnet=192.168.0.0/24 --gateway=192.168.0.23 --opt "com.docker.network.bridge.name"="br0" jenkins fcdef22003bdc75011a53a8a0e71ec8a992f17b15ce671b8064753548541f53e
Jenkins内部からDockerを利用可能にする
- Docker in Docker docker:dind
- Docker コンテナ(Jenkins 稼動)上で Docker コンテナ(テスト用DB 稼動)を動かすことになります。これを Docker in Docker といいます
- Jenkins コンテナのベースイメージとして docker:dind を使用すると、コンテナ上から docker を実行できるようになります
$ docker run \ --name jenkins-docker \ --rm \ --detach \ --privileged \ --network jenkins \ --network-alias docker \ --ip 192.168.0.15 \ --env DOCKER_TLS_CERTDIR=/certs \ --volume jenkins-docker-certs:/certs/client \ --volume jenkins-data:/var/jenkins_home \ --publish 2376:2376 \ docker:dind \ --storage-driver overlay2
- 確認
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES f15315bf5752 docker:dind "dockerd-entrypoint.…" 6 minutes ago Up 6 minutes 2375/tcp, 0.0.0.0:2376->2376/tcp, :::2376->2376/tcp jenkins-docker
- 確認2
$ docker volume ls DRIVER VOLUME NAME local 58132856bc0429402f20086a302ff73aa1dc6d06dbc8363cac0d24431d3b11c1 local jenkins-data local jenkins-docker-certs
- 確認3
$ docker volume inspect jenkins-data [ { "CreatedAt": "2021-05-28T20:52:44+09:00", "Driver": "local", "Labels": null, "Mountpoint": "/var/lib/docker/volumes/jenkins-data/_data", "Name": "jenkins-data", "Options": null, "Scope": "local" } ]
公式Dockerイメージをカスタマイズ
- 以下の内容を、”Dockerfile" として保存
FROM jenkins/jenkins:2.277.4-lts-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=amd64] 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.24.6 docker-workflow:1.26"
- "myjenkins-blueocean:1.1" など意味のあるタグを付与して実行
$ docker build -t myjenkins-blueocean:1.1 .
Dockerコンテナとして実行
$ docker run \ --name jenkins-blueocean \ --rm \ --detach \ --network jenkins \ --env DOCKER_HOST=tcp://docker:2376 \ --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \ --publish 50000:50000 \ --volume jenkins-data:/var/jenkins_home \ --volume jenkins-docker-certs:/certs/client:ro \ myjenkins-blueocean:1.1
$ docker run \ --name jenkins-blueocean \ --rm \ --detach \ --network jenkins \ --ip 192.168.0.16 \ --env DOCKER_HOST=tcp://docker:2376 \ --env DOCKER_CERT_PATH=/certs/client \ --env DOCKER_TLS_VERIFY=1 \ --publish 8080:8080 \ --publish 50000:50000 \ --volume jenkins-data:/var/jenkins_home \ --volume jenkins-docker-certs:/certs/client:ro \ myjenkins-blueocean:1.1
- 確認
$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 295ed6908221 myjenkins-blueocean:1.1 "/sbin/tini -- /usr/…" 4 seconds ago Up 3 seconds 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:50000->50000/tcp, :::50000->50000/tcp jenkins-blueocean f15315bf5752 docker:dind "dockerd-entrypoint.…" 6 hours ago Up 6 hours 2375/tcp, 0.0.0.0:2376->2376/tcp, :::2376->2376/tcp jenkins-docker
Dockerコンテナに接続
$ docker exec -it jenkins-blueocean /bin/bash jenkins@295ed6908221:/$
Jenkins Setup
- アクセスすると、ログにアクセスパスワードが出力される
$ docker logs jenkins-blueocean
© 2006 矢木浩人