在 Docker Swarm 中部署 Jenkins
01 首先,让我们创建一个 Docker 网络,如下所示:
# docker network create -d overlay jenkins-net jmjn9ezjg2ftyuk3f8blaaca0
01 首先,创建堆栈 Yaml 文件如下:
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:
- 8080:8080
- 50000:50000
volumes:
- jenkins_data:/var/jenkins_home
- /var/run/docker.sock:/var/run/docker.sock
networks:
- jenkins-net
deploy:
mode: replicated
replicas: 1
restart_policy:
condition: on-failure
placement:
constraints:
- node.role == worker
healthcheck:
test: ["CMD-SHELL", "curl -sS http://localhost:8080/login || exit 1"]
interval: 30s
timeout: 10s
retries: 5
volumes:
jenkins_data:
driver: local
driver_opts:
type: "none"
o: "bind"
device: "/jenkinsdata"
networks:
jenkins-net:
driver: overlay
external: true
为了持久化 Jenkins 数据,我们对所有 Docker Swarm Workers 使用了一个 NFS 目录挂载点 /jenkinsdata。
03 现在,让我们通过运行以下命令来部署 Jenkins Docker 堆栈:
# docker stack deploy -c jenkins_stack.yml jenkins-prod Creating service jenkins-prod_jenkins
04 最后,让我们检查一下堆栈是否部署成功:
# docker stack services jenkins-prod ID NAME MODE REPLICAS IMAGE PORTS 7drve5u4cinx jenkins-prod_jenkins replicated 1/1 onitroad/jenkins:centos *:8080->8080/tcp, *:50000->50000/tcp
Jenkins 是一个开源的、基于 Java 的自动化服务器,它提供了一种设置持续集成和持续交付 (CI/CD) 管道的简单方法。
本教程演示了在 Docker Swarm 上安装 Jenkins 的步骤。
已经使用的 Jenkins 镜像内置了 Docker Engine 和一些自定义配置,比如设置 Jenkins 管理员用户和密码,还预装了一些插件。
PS:要构建我们自己的 Jenkins Docker 镜像,请按照我们之前的教程:如何构建自定义 Jenkins Docker 镜像
日期:2020-06-02 22:18:47 来源:oir作者:oir
