イメージ取得
docker pull jenkins/jenkins:lts
LTS版を使う
起動
docker run -d -p 18080:8080 -p 50000:50000 -v /data/jenkins_home:/var/jenkins_home --name jenkins --restart=always jenkins/jenkins:lts --prefix=/jenkins
--prefix指定でサブディレクトリ化してnginxによるリバースプロクシsslできるようにする。
ディレクトリ作成
mkdir /data/jenkins_home
chown -R 1000:1000 /data/jenkins_home
nginx
upstream jenkins_server {
server 127.0.0.1:18080 fail_timeout=0;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
(中略)
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name _;
root /usr/share/nginx/html;
#jenkinsサーバ
location ~ /jenkins {
proxy_read_timeout 300; # Some requests take more than 30 seconds.
proxy_connect_timeout 300; # Some requests take more than 30 seconds.
proxy_redirect off;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header Authorization "";
proxy_pass http://jenkins_server;
access_log /var/log/nginx/jenkins_access.log;
error_log /var/log/nginx/jenkins_error.log;
}
もしかしたら最初のトークン認証が終わるまではクロームブラウザではアクセスできないかもしれない。その場合はFirefoxで認証だけ行う。