【发布时间】:2021-02-11 02:12:01
【问题描述】:
所以我有一个基本图像,它已经在本地和通过 SSH 进行了测试,它工作正常。但是当我尝试通过 Jenkins sh 部署它时,问题就出现了。
当我远程进入实例并运行以下命令时:
docker stack deploy --compose-file=simpleTest.yml simpleTestService
我的服务运行良好。但是,当我的 Jenkins 代理运行相同的命令时 - 我得到了
节点不是集群管理器。使用“docker swarm init”或“docker swarm join" 以将此节点连接到 swarm 并重试
我不确定为什么会这样?是不是因为我需要告诉 Jenkins Agent 加入 Swarm Manager(如何?)
这是我的示例 .yml。据我所知,docker-compose 版本由我在 YML 中的“3”决定,我的 Docker 版本是 19.03.13-CE。我的 Jenkins 代理在不同的实例上,我从存储库中提取图像并将其推送到目标实例(Docker 所在的位置)。信息显示 Swarm 处于活动状态,并且是管理器。当我在实际实例上运行它时,我编辑了图像名称以具有存在于我的 repo 中的构建的名称和标签(我使用了与 Jenkins 相同的图像和标签来排除任何奇怪的不一致)。
version: "3"
services:
app:
image: "${FULLNAMEWITHTAG}"
container_name: SimpleTest
restart: always
environment:
NODE_ENV: production
build: .
ports:
- "9001:9001"
【问题讨论】:
标签: docker jenkins docker-compose docker-swarm