Docker stack deploy 没有拉取所有镜像

Docker stack deploy doesn't pull all images

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

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