「Jenkins」の版間の差分
ナビゲーションに移動
検索に移動
177行目: | 177行目: | ||
[https://developer.aiming-inc.com/infra/jenkins-github-webhook-collaboration/ JenkinsとGitHubのWebhook連携の整理] | [https://developer.aiming-inc.com/infra/jenkins-github-webhook-collaboration/ JenkinsとGitHubのWebhook連携の整理] | ||
+ | [[File:JenkinsとGitHubのWebhook連携の整理|600px]] |
2021年6月3日 (木) 13:05時点における版
| Docker |
目次
Jenkins
Install(Docker)
ブリッジネットワークの作成
- https://www.jenkins.io/doc/book/installing/docker/
- https://www.typea.info/blog/index.php/2021/05/24/ubunt_docker_tensorflow_other_host_bridge/
- $ 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 \
- --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 \
- --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
- $ nmcli con show
- NAME UUID TYPE DEVICE
- ctc-a-d17c80 46a14c17-83f7-4d08-bf9d-c9e1aeba3b81 wifi wlp2s0
- br0 cd44f828-91d2-44a9-a0ad-5043d4c73f1d bridge br0
- docker0 6c866865-d7ba-4c3c-836a-548630f40c71 bridge docker0
- mpqemubr0 3ccae181-8936-4a15-bee2-7a1e07f3db36 bridge mpqemubr0
- bridge-slave-enp1s0f1 21562732-1f1c-49b4-a7ba-e6469d46f49b ethernet enp1s0f1
- ctc-g-d17c80 21fe84f8-fefd-4f25-a922-e098b6d49e3d wifi --
- netplan-enp1s0f1 fb8733d5-5b9d-3c3c-ad52-c077a300b661 ethernet --
Dockerコンテナに接続
- $ docker exec -it jenkins-blueocean /bin/bash
- jenkins@295ed6908221:/$
Jenkins Setup
- アクセスすると、ログにアクセスパスワードが出力される
- $ docker logs jenkins-blueocean
推奨プラグインの一括インストール
準備完了
Web画面からの再起動
- http://192.168.0.16:8080/safeRestart
日本語化
- 日本語化は、ブラウザの言語に依存。Edge(Chrome)の例
JOBの作成
新規フリースタイルプロジェクトのビルド
ソースコード管理Git
© 2006 矢木浩人