
docker-compose.yml
文件创建一个 docker-compose.yml
文件,用于定义 Jenkins 和 Runner 容器。
version: '3'
services:
jenkins:
image: jenkins/jenkins:lts
container_name: jenkins
ports:
- "8080:8080"
- "50000:50000"
volumes:
- jenkins_home:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
environment:
- JAVA_OPTS=-Djenkins.install.runSetupWizard=false
restart: always
jenkins-runner:
image: jenkins/inbound-agent:latest
container_name: jenkins-runner
environment:
- JENKINS_URL=http://jenkins:8080/
- JENKINS_AGENT_WORKDIR=/home/jenkins/agent
- JENKINS_SECRET=your-agent-secret
- JENKINS_AGENT_NAME=your-agent-name
volumes:
- /var/run/docker.sock:/var/run/docker.sock
depends_on:
- jenkins
restart: always
volumes:
jenkins_home:
配置说明:
jenkins/jenkins:lts
是 Jenkins 的长期支持版本镜像。8080
端口用于访问 Jenkins Web 界面,50000
端口用于连接代理节点。挂载宿主机的 Docker socket 到容器中,以便 Jenkins 可以在容器内运行 Docker 命令。
jenkins-runner 服务:
jenkins/inbound-agent:latest
是 Jenkins 的官方代理镜像。JENKINS_URL
指定 Jenkins 主服务器的 URL。JENKINS_SECRET
和 JENKINS_AGENT_NAME
用于注册 Runner,稍后需要替换为实际的值。 在 docker-compose.yml
文件所在目录中运行以下命令启动服务:
docker-compose up -d
此命令会在后台启动 Jenkins 和 Jenkins Runner 容器。
首次启动 Jenkins 时,需要获取初始管理员密码。使用以下命令查看日志:
docker logs jenkins
在日志中找到类似 Please use the following password to proceed to installation
的行,复制密码用于首次登录 Jenkins。
http://<Your-Docker-Host-IP>:8080
。创建一个管理员用户,然后完成初始设置。
在 Jenkins Web 界面中:
/home/jenkins/agent
,然后保存。在生成的节点配置页面中,获取 JENKINS_SECRET
和 JENKINS_AGENT_NAME
值,用于更新 docker-compose.yml
中的环境变量。
docker-compose.yml
并重启 Runner更新 docker-compose.yml
文件中的 JENKINS_SECRET
和 JENKINS_AGENT_NAME
,然后重新启动 Jenkins Runner:
docker-compose up -d jenkins-runner
此时,Jenkins Runner 应该已成功连接到 Jenkins 主服务器。
你现在可以在 Jenkins 中创建并配置 Pipeline,以使用 Docker 和 Jenkins Runner 进行构建和部署。以下是一个简单的 Pipeline 示例: