LoginSignup
17
12

More than 5 years have passed since last update.

jenkinsコンテナ上でdockerを利用する

Last updated at Posted at 2018-07-25

jenkinsおじさんを触り始めてみました。dockerでjenkins利用した時にjenkins上でdocker buildしたいなーと思っています。できるかとかはまだ試せていません。

一旦以下を参考にホストのdocker daemonを利用するjenkinsのDockerfileを作成しました。
Docker in Docker のベタープラクティス - Qiita

参考URL

ホストマシンのdocker daemonのソケット権限確認

今回ホストマシンのdocker daemonを利用するために/var/run/docker.sockを利用します。
アクセス権限が必要になるのでGIDを取得します。

$ls -lshn /var/run/docker.sock
0 lrwxr-xr-x  1 501  20    65B  7 29 11:23 /var/run/docker.sock -> /Users/uhoi/Library/Containers/com.docker.docker/Data/docker.sock

今回私の場合は501ですね。

dockerfile

DOCKER_GROUP_GIDに先ほど取得したホストのGIDを設定します。

FROM jenkins/jenkins:lts

# docker daemonの動いているホストのGIDを指定する
# docker run -v /var/run/docker.sock:/var/run/docker.sock で
# ホストのdocker daemonを共有する前提
ENV DOCKER_GROUP_GID 501

USER root

# docker のバイナリをinstall
RUN wget https://download.docker.com/linux/static/stable/x86_64/docker-18.03.1-ce.tgz
RUN tar -xvf docker-18.03.1-ce.tgz
RUN mv docker/* /usr/bin/

# jenkins userでもdockerが使えるようにする
RUN groupadd -o -g ${DOCKER_GROUP_GID} docker
RUN usermod -g docker jenkins

# jenkinsのuidは1000
# jenkinsユーザを利用するのがベストプラクティス
USER jenkins

build

$ docker build -t jenkins-master:latest .

run

$ docker run  -d  --name jenkins -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home -v /var/run/docker.sock:/var/run/docker.sock jenkins-master

-v /var/run/docker.sock:/var/run/docker.sock でホストのdocker daemonを共有しています。

dockerが利用できるか確認

$ docker exec -it jenkins /bin/bash
jenkins@6dde32d18460:/$ docker info
Containers: 61
 Running: 30
 Paused: 0
 Stopped: 31
Images: 62
Server Version: 1.13.1
Storage Driver: aufs
 Root Dir: /var/lib/docker/aufs
 Backing Filesystem: extfs
 Dirs: 388
 Dirperm1 Supported: true
Logging Driver: json-file
...

jenkins container上でdockerが利用できました。

17
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
12