4

我将 docker 用于许多不同的服务和工具。我运行一个docker stack deploy -c docker-compose.yml --with-registry-auth stack_name. 在集群本身上,只有一两个节点会拉取图像,而不会拉到其他节点上。我认为部署会导致所有节点都拉出,以便图像无处不在。然后发生的错误是no such image因为它没有被拉到那个特定的节点上。我一直在四处寻找帮助,我看到很多关于它如何正常执行此操作的页面。我是否遗漏了导致此问题的原因,任何帮助都会有所帮助。

4

1 回答 1

2

我终于弄清楚了问题所在。部署作业时,它使用的令牌只会在作业运行的时间长度内保持活动状态。所以在我的gitlab-ci文件中的脚本中,我总是至少在第一个节点上拉取图像,所以它总是在那里工作。这使得至少一个节点具有图像。为了让它们在其他节点上,我必须添加一个睡眠,以便其他节点有足够的时间来拉取图像。这是一个竞争条件,工作结束后令牌变得无用并且无法提取任何图像。

于 2018-06-11T18:47:13.063 回答