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 示例: