1. 准备 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-runner 服务:

2. 启动 Jenkins 和 Runner

docker-compose.yml 文件所在目录中运行以下命令启动服务:

docker-compose up -d

此命令会在后台启动 Jenkins 和 Jenkins Runner 容器。

 

3. 获取 Jenkins 初始密码

首次启动 Jenkins 时,需要获取初始管理员密码。使用以下命令查看日志:

docker logs jenkins

在日志中找到类似 Please use the following password to proceed to installation 的行,复制密码用于首次登录 Jenkins。

 

4. 配置 Jenkins

  1. 在浏览器中访问 Jenkins 的 Web 界面:http://<Your-Docker-Host-IP>:8080
  2. 输入获取到的初始管理员密码,然后继续安装推荐的插件。
  3. 创建一个管理员用户,然后完成初始设置。

     

5. 获取 Jenkins Runner 注册信息

在 Jenkins Web 界面中:

  1. 进入 “Manage Jenkins” > “Manage Nodes and Clouds” > “New Node”。
  2. 输入节点名称,选择 “Permanent Agent”,然后点击 “OK”。
  3. 配置 Remote root directory 为 /home/jenkins/agent,然后保存。
  4. 在生成的节点配置页面中,获取 JENKINS_SECRETJENKINS_AGENT_NAME 值,用于更新 docker-compose.yml 中的环境变量。

     

6. 更新 docker-compose.yml 并重启 Runner

更新 docker-compose.yml 文件中的 JENKINS_SECRETJENKINS_AGENT_NAME,然后重新启动 Jenkins Runner:

docker-compose up -d jenkins-runner

此时,Jenkins Runner 应该已成功连接到 Jenkins 主服务器。

 

7. 配置和使用 Jenkins Pipeline

你现在可以在 Jenkins 中创建并配置 Pipeline,以使用 Docker 和 Jenkins Runner 进行构建和部署。以下是一个简单的 Pipeline 示例: