DockerでJenkinsを動かす手順を記載します。
Table of Contents
1 JenkinsをHTTPで動かす
JenkinsをHTTPで動かす手順を記載します。
- Jenkinsのコンテナは8080/tcpをHTTPのポートとして開放します。Jenkinsのコンテナの8080/tcpをホストマシンの80/tcpにマッピングします。
- データの永続化の為、Jenkinsがデータを格納するJENKINS_HOME(デフォルトでは/var/jenkins_home)をjenkins_homeというボリュームにマッピングします。
以下のコマンドでJenkinsのコンテナを動かします。
$ docker run -d --name jenkins \ -p 80:8080 \ -v jenkins_home:/var/jenkins_home \ jenkins/jenkins:lts
Jenkinsの初期パスワードは${JENKINS_HOME}/secrets/initialAdminPasswordに格納されます。Jenkinsのコンテナが立ち上がるのに若干の時間が必要です。
$ while : ; do docker cp jenkins:/var/jenkins_home/secrets/initialAdminPassword . \ > /dev/null 2>&1 && break sleep 10; done $ cat initialAdminPassword $ rm -f initialAdminPassword
ホストマシンのIPアドレスかホスト名で以下のURLにアクセスします。
http://<ipaddr>
2 JenkinsをHTTPSで動かす
JenkinsをHTTPSで動かす手順を記載します。
- Jenkinsのコンテナが使用するHTTPSのポートを8443/tcpにします。443等の低いポートはbindに失敗します。Jenkinsのコンテナの8443/tcpをホストマシンの443/tcpにマッピングします。
- HTTPSで使用するSSL証明書をdebianのコンテナで作成し、jenkins_homeのボリュームに格納します。
利用する変数を定義します。
$ JENKINS_HOME="/var/jenkins_home" $ JENKINS_OPTS="--httpPort=-1" $ JENKINS_OPTS="${JENKINS_OPTS} --httpsPort=8443" $ JENKINS_OPTS="${JENKINS_OPTS} --httpsPrivateKey=${JENKINS_HOME}/jenkins.key" $ JENKINS_OPTS="${JENKINS_OPTS} --httpsCertificate=${JENKINS_HOME}/jenkins.pem"
debianのコンテナのopensslでSSL証明書を作成してjenkins_homeのボリュームに格納します。
$ docker run --rm \ -v jenkins_home:${JENKINS_HOME} \ debian:jessie \ /bin/sh -c " set -e apt update -y apt install -y openssl cd ${JENKINS_HOME} openssl genrsa -out jenkins.key cat <<EOF | openssl req -new -key jenkins.key -out jenkins.crt AU Some-State city company section EOF openssl x509 -req -days 9999 -in jenkins.crt -signkey jenkins.key \ -out jenkins.pem "
以下のコマンドでJenkinsのコンテナを動かします。
$ docker run -d --name jenkins \ -p 443:8443 \ -e JENKINS_HOME=${JENKINS_HOME} \ -e JENKINS_OPTS="${JENKINS_OPTS}" \ -v jenkins_home:${JENKINS_HOME} \ jenkins/jenkins:lts
Jenkinsの初期パスワードは${JENKINS_HOME}/secrets/initialAdminPasswordに格納されます。Jenkinsのコンテナが立ち上がるのに若干の時間が必要です。
$ while : ; do docker cp jenkins:/var/jenkins_home/secrets/initialAdminPassword . \ > /dev/null 2>&1 && break sleep 10; done $ cat initialAdminPassword $ rm -f initialAdminPassword
ホストマシンのIPアドレスかホスト名で以下のURLにアクセスします。
https://<ipaddr>