本地开发和 swarm 服务镜像更新

Local development and swarm service image update

我们在开发人员机器上使用 Docker Swarm 进行开发。 Docker 服务正在使用,例如foo:beta 图片。

当开发人员为 foo 构建新功能时,他会在本地构建容器的新映像,名称相同(sha 不同)。

但是,我们无法更新服务以使用新的图像版本。我们尝试了

docker service update --force --image <component>

w/o成功。

我们是运行最新的边缘docker构建:17.05.0-ce-rc1-mac8(16582)

关键是对图像使用本地标签,该标签在远程存储库中不存在。当 Swarm 在远程 repo 上找不到给定标签的图片时,它将使用本地标签。

为此,我们还标记了所有与开发人员相关的容器,例如dev 标签,仅存在于开发者机器上。这样我们就可以更新图像并通过强制服务更新,更新 运行 代码。