话说用了基于 docker-gen 的几个镜像后才知道竟然有这样的操作。前一阵考虑更加友好的更新服务器的方式时,想到两种方案。
-
类 docker-gen 的方式自动更新所有容器的 git 仓库,这样在 Mac 上只要 push 到 github 服务器一会就自动更新了。
-
是跑一个 Dropbox 的客户端 Docker,其它容器的 Volume 都挂到 Dropbox 的一个子目录上。
然后我发现 Docker 的 API 竟然如此简单,于是撸了一个 Docker 镜像: git-agent

https://github.com/waylybaye/git-agent
使用方法
使用非常简单,只要在服务器上启动一下 git-agent
docker run -d -v /:/rootfs -v /var/run/docker.sock:/var/run/docker.sock:ro hyperapp/git-agent
然后所有需要更新 git 仓库的容器添加两个变量就行了
docker run -d -e GIT_VOLUME='/srv' -e GIT_REMOTE='https://github.com/xxx.git' -v /srv myImage
每五分钟(可以配置)就会主动更新所有容器的仓库了。
