保持Docker容器最新

假设我有几个Docker容器。 当容器启动时,每个代码都是从远程Git仓库中提取的。 但是,现在有些容器正在提供远程主分支后面的代码。 我想让他们都是最新的。

我意识到我可以运行docker exec -it [container_id] bash ,然后在每个容器内部手动git pull ,但是这看起来不像是一个可扩展或实用的选项。

是否有一个现有的方法来自动化我的Docker容器的代码? webhooks是这样做的正确方法吗?

假设你有一个可达的端点,你可以使用Web钩子。 我更喜欢在你的repo更新的时候build立新的docker镜像,但是跟你的方法一样,你可以考虑如下的东西:

  1. 我们打电话给你的容器A,B和C.
  2. 设置一个新的容器W来暴露Web钩子,并为A,B和C安装卷。你的git包将被克隆到这些卷中。
  3. docker run A,B和C与--volumes-from W
  4. 当W收到一个更新时,它会在适当的包上执行git pull,自动更新容器看到的代码。
  5. W可能需要根据需要向容器发送重启信号。