在 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