DockerでJenkinsを構築

単に Docker で Jenkins 動かしたいなら公式の jenkins Repository | Docker Hub Registry - Repositories of Docker Images がすぐ動くし、Dockerfile も読める。
以下は CentOSAmazon Linux 上で動かしたい人用の最小構成。

Dockerfile

FROM centos:centos7

# Change timezone
RUN ln -sf /usr/share/zoneinfo/Japan /etc/localtime

# Install requirement
RUN yum update -y && yum install -y \
  java-1.7.0-openjdk.x86_64 \
  wget

# Install jenkins
RUN wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
RUN rpm --import http://pkg.jenkins-ci.org/redhat/jenkins-ci.org.key
RUN yum install -y jenkins

EXPOSE 8080

ENTRYPOINT ["java", "-Djava.awt.headless=true", "-DJENKINS_HOME=/var/lib/jenkins",  "-jar", "/usr/lib/jenkins/jenkins.war", "--logfile=/var/log/jenkins/jenkins.log", "--webroot=/var/cache/jenkins/war"]
  • 説明
    • CentOS7 をベースに利用
    • タイムゾーンUTC なので JST に変更
    • Jenkins は Java がないと動かないので java-1.7.0-openjdk.x86_64 をインストール
    • wget も入ってないので入れる
    • Jenkins のインストールは、公式に書いてある通り RedHat Repository for Jenkins
    • 8080ポートを公開
    • Docker はフォアグラウンドで動かさなきゃ行けないので java コマンドで直接起動
      • 引数は service jenkins start した後に ps aux | grep jenkins でみえるやつからなくても大丈夫なものを省いたのを書いた

使い方

ソースはこちら。起動用のコマンドもこっちに書いてる。
jnst-devops/docker/jenkins at master · jnst/jnst-devops · GitHub