保持Docker容器最新
假设我有几个Docker容器。 当容器启动时,每个代码都是从远程Git仓库中提取的。 但是,现在有些容器正在提供远程主分支后面的代码。 我想让他们都是最新的。
我意识到我可以运行docker exec -it [container_id] bash
,然后在每个容器内部手动git pull
,但是这看起来不像是一个可扩展或实用的选项。
是否有一个现有的方法来自动化我的Docker容器的代码? webhooks是这样做的正确方法吗?
假设你有一个可达的端点,你可以使用Web钩子。 我更喜欢在你的repo更新的时候build立新的docker镜像,但是跟你的方法一样,你可以考虑如下的东西:
- 我们打电话给你的容器A,B和C.
- 设置一个新的容器W来暴露Web钩子,并为A,B和C安装卷。你的git包将被克隆到这些卷中。
-
docker run
A,B和C与--volumes-from W
- 当W收到一个更新时,它会在适当的包上执行git pull,自动更新容器看到的代码。
- W可能需要根据需要向容器发送重启信号。