【问题标题】:How to pull new docker images and restart docker containers after building docker images on gitlab?在 gitlab 上构建 docker 镜像后如何拉取新的 docker 镜像并重启 docker 容器?
【发布时间】:2019-12-03 10:05:31
【问题描述】:

有一个asp.net core api 项目,源代码位于gitlab。 创建gitlab ci/cd pipeline 来构建docker 镜像并将镜像放入gitlab docker 注册表 (感谢https://medium.com/faun/building-a-docker-image-with-gitlab-ci-and-net-core-8f59681a86c4)。

将镜像放到gitlabdocker registry后如何在我的生产系统上更新docker containers

*我的意思是更新:

docker-compose down && docker pull && docker-compose up 

【问题讨论】:

  • 你的意思是docker-compose pull
  • @HåkenLid,是的,如何使用 gitlab ci 在创建新图像后自动执行 docker-compose pull。也许阶段部署?但是 builder runner 是一个免费的 gitlab-ci 共享运行器。要部署我需要本地跑步者吗?或者使用共享运行器使用 ssh deploy 会更好。或者更好地在我的系统端使用 webhook 和其他一些工具?

标签: docker gitlab-ci gitlab-ci-runner docker-registry


【解决方案1】:

最好的方法是使用 Image puller,有很多开源可用,或者您可以在 Shell 上编写自己的。有一个here。我们使用 swarm,并使用这个钩子概念从我们的 CI-CD 管道中触发。一旦我们的构建阶段完成,我们 http 钩子 url,docker 拉取更新的图像。
这样做的一个缺点是你需要一个守护进程来监视你的钩子任务,它不会崩溃或崩溃。所以我的建议是将这个钩子任务作为 docker 容器运行,restart-policyRestartAlways

【讨论】:

    猜你喜欢
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多