JenkinsのDockerコンテナの作成

DockerでCentOSベースのJenkinsコンテナを作成しました。

  • ホストOS

CentOS 6.5

cat /etc/redhat-release 
CentOS release 6.5 (Final)
  • Docker 1.0
docker version
Client version: 1.0.0
Client API version: 1.12
Go version (client): go1.2.2
Git commit (client): 63fe64c/1.0.0
Server version: 1.0.0
Server API version: 1.12
Go version (server): go1.2.2
Git commit (server): 63fe64c/1.0.0
  • Dockerfile
FROM centos:latest

## Install core modules.
RUN yum -y install ntp curl && yum -y clean all

## Install Oracle JDK8
RUN curl -LO 'http://download.oracle.com/otn-pub/java/jdk/8u5-b13/jdk-8u5-linux-x64.rpm' -H 'Cookie: oraclelicense=accept-securebackup-cookie' && rpm -i jdk-8u5-linux-x64.rpm && rm jdk-8u5-linux-x64.rpm

## Install jenkins.
RUN curl -o /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo && rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
RUN yum -y install jenkins && yum -y clean all

## Change timezone and synchronize to ntp server.
RUN sed -i -e "s|Europe/London|Asia/Tokyo|g" /etc/sysconfig/clock && mv /etc/localtime /etc/default.localtime && cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && ntpdate ntp.nict.jp

## Start jenkins.
EXPOSE 8080
CMD service jenkins start && sleep 10 && tail -f /var/log/jenkins/jenkins.log

(serviceコマンドでjenkinsを起動し、コンテナもrunし続ける手法は何かないのでしょうか。)


あとは、このDockerfileを使ってイメージの作成とコンテナの起動を行う。

  • イメージの作成

t オプションで指定しているタグ名はお好みで。

docker build -t centos/jenkins:1.0 .
  • コンテナ起動

name オプションで指定しているコンテナ名もお好みで。

docker run -d -p 8080:8080 --name jenkins centos/jenkins:1.0

Webブラウザーからアクセスしてみます。
f:id:sun-rise:20140622111826p:plain
見れました。OK。

「とりあえず動かす」目的でありましたが、本格的に利用する場合は永続化のために
ホストにボリュームをマウントするなどした方がよいのでしょう。