准备工作
在继续本教程之前,请确保我们已满足以下准备工作:
- 以具有 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_USER
和 JENKINS_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
Jenkins 是一个开源的、基于 Java 的自动化服务器,它提供了一种设置持续集成和持续交付 (CI/CD) 管道的简单方法。
本教程演示了使用 docker compose 文件将 Jenkins 安装为容器的步骤。
已经使用的 Jenkins 镜像内置了 Docker Engine 和一些自定义配置,比如设置 Jenkins 管理员用户和密码,还预装了一些插件。