场景:我们用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_resourcesnotifying_block)中构建资源,但是对于完全从头开始构建的内容,您需要自己编写该代码。

关于docker - 使用Docker与Chef的平滑解决方案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34598816/

10-15 23:24