准备工作

在继续本教程之前,请确保我们已满足以下准备工作:

  • 以具有 sudo 权限的用户身份登录。
  • 安装 Docker 引擎
  • 已安装 Docker compose

创建 Docker 撰写文件,如下所示:

01 首先,我们将使用我们的自定义 Jenkins Docker 镜像 onitroad/jenkins:centos,其中预装了 docker 和 jenkins。

version: '3.7'
services:
  jenkins:
    image: onitroad/jenkins:centos

要了解如何使用内置 Docker 引擎构建我们自己的自定义 Jenkins Docker 镜像,请按照我们之前的教程如何构建自定义 jenkins Docker 镜像。

02 我们的自定义 Jenkins 镜像 onitroad/jenkins是使用默认的 Jenkins 管理员用户名 admin和默认密码 admin构建的。
因此,要修改默认的 jenkins 管理员用户和密码,只需提供以下环境值 JENKINS_USERJENKINS_PASS就可以了。

environment:
      - JENKINS_USER=CHANGE_ME
      - JENKINS_PASS=CHANGE_ME

03 但是,默认的 Jenkins 8080端口将作为 8000暴露给主机。
此外,如果我们在其他机器上设置了一个或者多个基于 JNLP 的 Jenkins 代理,那么我们必须发布默认的 JNLP 端口 5000

ports:
      - 8000:8080
      - 50000:50000

04 为了持久化 jenkins 数据,让我们将容器内的 /var/jenkins_home目录映射到名为 jenkins_data的 Docker 卷。
不要忘记创建目录 /jenkinsdata作为挂载主机目录。

volumes:
      - jenkins_data:/var/jenkins_home

05 最后,为了能够将 docker daemon 与 Jenkin s 一起使用,我们需要将 /var/run/docker.sock作为卷挂载。

- /var/run/docker.sock:/var/run/docker.sock

最后的撰写文件应如下所示:

version: '3.7'
services:
  jenkins:
    image: onitroad/jenkins:centos
    environment:
      - JAVA_OPTS=-Djenkins.install.runSetupWizard=false -Dhudson.footerURL=http://onitroad.com
      - JENKINS_USER=CHANGE_ME
      - JENKINS_PASS=CHANGE_ME
    ports:
      - 8000:8080
      - 50000:50000
    volumes:
      - jenkins_data:/var/jenkins_home
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  jenkins_data:
    driver: local
    driver_opts:
      type: "none"
      o: "bind"
      device: "/jenkinsdata"

06 保存文件后,使用以下命令启动Jenkins容器作为后台进程:

$docker-compose up -d

07 现在,要检查容器是否已运行,请使用以下命令:

$docker-compose ps

08打开浏览器并输入 docker IP 地址,然后输入端口 8080 ,使用我们在 docker-compose 文件中设置的用户名和密码登录:

http://your_ip_address:8080
如何使用 Docker Compose 部署 Jenkins

Jenkins 是一个开源的、基于 Java 的自动化服务器,它提供了一种设置持续集成和持续交付 (CI/CD) 管道的简单方法。

本教程演示了使用 docker compose 文件将 Jenkins 安装为容器的步骤。
已经使用的 Jenkins 镜像内置了 Docker Engine 和一些自定义配置,比如设置 Jenkins 管理员用户和密码,还预装了一些插件。

日期:2020-06-02 22:18:44 来源:oir作者:oir