场景:我们用Bamboo构建docker镜像,并将这些镜像推送到gcr.io。
Chef-client运行将始终执行gcloud docker pull来下拉最新镜像。但是,chef-client将不会重新启动将启用新镜像的服务。我们在开发人员和生产人员中手动重新启动服务,因为我们不希望厨师在确定新镜像有效之前启动该服务。
因此,如果我们对我们的新版本有信心(正在努力),是否有一种优雅的方式告诉主厨客户新镜像已损坏,需要重新启动服务?
它几乎就像一个“通知”的东西,几乎像:
custom_docker_image_thingie "docker_image_name" do
tag node.environment
notifies :restart, "service[service_name]"
end
那有意义吗?
最佳答案
是的,就是这样。您可能需要custom_docker_image_thingie
资源来正确设置其updated?
标志,以使其正常工作。有一些帮助程序可以帮助您从其他较小的资源(12.5自定义资源语法,use_inline_resources
和notifying_block
)中构建资源,但是对于完全从头开始构建的内容,您需要自己编写该代码。
关于docker - 使用Docker与Chef的平滑解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34598816/