Jenkins 是一个开源的自动化服务器,它支持软件开发的持续集成和持续部署(CI/CD)。它允许开发团队自动化构建、测试和部署应用程序,从而提高软件开发的效率和质量。
下边来使用 docker 安装 jenkins,并配置 nginx 代理,进行子路径部署。就是 jenkins 部署到非根目录下,jenkins 只是主域名访问的一部分。
jenkins 官网下载地址:
https://www.jenkins.io/download/
安装
- 先创建部署目录和存储数据目录,设置权限。
mkdir jenkins
cd jenkins
mkdir jenkins_home
chown 1000:1000 jenkins_home
- 创建 docker-compose.yaml 文件。
services:
jenkins:
image: jenkins/jenkins:2.568.1
container_name: jenkins
restart: always
volumes:
- ./jenkins_home:/var/jenkins_home
# 挂载宿主机 docker.sock,让 Jenkins 能调用宿主机的 docker
- /var/run/docker.sock:/var/run/docker.sock
- /usr/bin/docker:/usr/bin/docker
# 挂载宿主机的 SSH 密钥(git clone Codeberg 用)
- /root/.ssh:/var/jenkins_home/.ssh:ro
environment:
- TZ:Asia/Shanghai
command: >
--prefix=/cicd
networks:
- xrnet
networks:
xrnet:
external: true
这里的网络必须和宿主机中 nginx 的网络相同。因为要部署到子路径下,所以要配置 prefix。
- 运行起来。
docker compose up -d
- 修改已存在的 nginx 配置,添加代理,就使用 cicd 作为子路径代理。新增代理配置。
location /cicd/ {
proxy_pass http://jenkins:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-Context /cicd;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 60s;
proxy_read_timeout 300s;
proxy_send_timeout 300s;
}
location = /cicd {
return 301 /cicd/;
}
- 重启 nginx。
docker restart xr-nginx
运行并设置用户名和密码
- 打开网站: https://xxx.xxx.com/cicd
- 查找密码,输入密码,继续。
# 查看密码 cat ./jenkins home/secrets/initialAdminPassword
- 安装插件,可以选择安装默认插件。安装过程到最后,如果有失败的可以继续安装,也可以跳过进入到下一步。
- 配置第一个管理员用户,这个比较重要,要记住账号和密码。

- 继续直到最后。

- 安装完成,进入 jenkins 首页。

