Jenkins(dind)でいくつかハマりどころがあったので備忘録として
手順
Dockerfile
FROM zephyrhq/docker-jenkins-dind
RUN usermod -g docker jenkins
Docker(docker-compose入)のJenkinsイメージを使ってなるべく楽する。
参考:[jenkinsコンテナ上でdockerを利用する]
(https://qiita.com/paper2/items/751246ee7dcae50d5042)
docker-compose.yml
version: '3'
services:
jenkins:
build: ./
ports:
- 8080:8080
privileged: true
volumes:
- ./jenkins_dind:/var/lib/jenkins
- /var/run/docker.sock:/var/run/docker.sock
Dockerで構築したJenkinsでdocker-compose.ymlを使いたい場合
相対パスでvolumeを設定するとvolumeが空になる問題がある。
volumeは絶対パスで指定する。ベタに直書きするとローカル環境と実際のサーバー上で異なるので、環境変数を使うのがベター。
version: '3'
services:
hoge_service:
image: hoge
volumes:
- /home/hogeuser/jenkins_dind/workspace/hoge_service/project:/hoge_service/project #絶対パスにするのが肝
参考
dockerでjenkinsを立てる+その中でDockerを走らせる(docker in docker)
[jenkinsコンテナ上でdockerを利用する]
(https://qiita.com/paper2/items/751246ee7dcae50d5042)