保持 Docker 个容器最新
Keeping Docker Containers Current
假设我有几个 Docker 容器。每个都提供最初在容器启动时从远程 Git 存储库中提取的代码。但是,现在一些容器正在为远程 master 分支后面的代码提供服务。我想让所有这些都是最新的。
我意识到我可能可以 运行 docker exec -it [container_id] bash
然后在我的每个容器中手动 git pull
,但这似乎不是一个非常可扩展或实用的选项。
是否有现成的方法来自动化我的 Docker 容器的代码拉取? Webhooks 是解决这个问题的正确方法吗?
假设您有一个可到达的端点,您可以使用网络挂钩。我更喜欢在你的 repo 更新时构建新的 docker 图像,但是按照你的方法,你可以考虑像这样的东西:
- 我们将容器命名为 A、B 和 C。
- 设置一个新容器 W 以公开网络挂钩,并为 A、B 和 C 安装卷。您的 git 包将被克隆到这些卷中。
docker run
A、B 和 C 与 --volumes-from W
- 当 W 收到更新时,它会 git 拉取适当的包,自动更新容器看到的代码。
- W 可能需要根据需要向容器发送重启信号。
假设我有几个 Docker 容器。每个都提供最初在容器启动时从远程 Git 存储库中提取的代码。但是,现在一些容器正在为远程 master 分支后面的代码提供服务。我想让所有这些都是最新的。
我意识到我可能可以 运行 docker exec -it [container_id] bash
然后在我的每个容器中手动 git pull
,但这似乎不是一个非常可扩展或实用的选项。
是否有现成的方法来自动化我的 Docker 容器的代码拉取? Webhooks 是解决这个问题的正确方法吗?
假设您有一个可到达的端点,您可以使用网络挂钩。我更喜欢在你的 repo 更新时构建新的 docker 图像,但是按照你的方法,你可以考虑像这样的东西:
- 我们将容器命名为 A、B 和 C。
- 设置一个新容器 W 以公开网络挂钩,并为 A、B 和 C 安装卷。您的 git 包将被克隆到这些卷中。
docker run
A、B 和 C 与--volumes-from W
- 当 W 收到更新时,它会 git 拉取适当的包,自动更新容器看到的代码。
- W 可能需要根据需要向容器发送重启信号。