如何 `git push` 到容器内?

2017 年 3 月 4 日
 newton108

我现在希望在 host 里 git push, post-update hook 自动在容器里运行。

如果 host 的 working dir 是 git clone hostpath/project.git/ 出来的, host 的 git 会,而不是容器里的 git 会,尝试 post-update hook

我猜如果 git clone ssh://user@container/project.git 的话就会在容器内运行了。可是如何做到呢?

4289 次点击
所在节点    Docker
18 条回复
shyling
2017 年 3 月 4 日
别这样做。。
sneezry
2017 年 3 月 4 日
别把数据和环境混到一起
newton108
2017 年 3 月 4 日
@shyling
@sneezry
不懂,那怎么办?
Docker 到底该怎么用?

现在希望的工作流程是,在 host 里编辑 markdown , 在 docker 里 compile 成 html ,然后在 host 里浏览。
bbx
2017 年 3 月 4 日
vagrant 就好了
newton108
2017 年 3 月 4 日
@bbx 占空间太大了……
bbx
2017 年 3 月 4 日
docker 也不小。。
binux
2017 年 3 月 4 日
mount volume
newton108
2017 年 3 月 4 日
@binux 啥意思?这和 mount volume 有啥关系?
binux
2017 年 3 月 4 日
@newton108 #8 你把工作目录挂到 docker 里面,然后「 host 里编辑 markdown , 在 docker 里 compile 成 html ,然后在 host 里浏览」
newton108
2017 年 3 月 4 日
@binux 这步我已经成功了,问题是如果我在 host 里 `git commit`, docker 里不会自动运行 hook, 这个 hook 不能在 host 里运行因为 host 是 mac ,容器是 linux 。
binux
2017 年 3 月 4 日
@newton108 #10 你不能写个脚本检测文件改动吗?
bbx
2017 年 3 月 4 日
COPY GIT_REPO /DOCKER/PATH
RUN mvn clean install
RUN start_server.sh
newton108
2017 年 3 月 4 日
@binux 没懂你什么意思。又不是所有的改动我都想 compile 。
newton108
2017 年 3 月 4 日
@bbx 太高端了,等过两天好好研究。
binux
2017 年 3 月 4 日
@newton108 #13 你监控特定的文件啊,不知道 git 提交会改动哪个文件,最简单的, post-update 修改一个 commited 文件,你监控它不就好了。
swulling
2017 年 3 月 4 日
难道标准流程不是 git.push 后触发构建,创建新的 image ,然后销毁旧的容器换新的
just4test
2017 年 3 月 4 日
docker 的标准用法就是代码变更后重新创建 image 。
你有两个选择:
1.git push 之后重新构建重新运行
2.使用第三方 Docker 托管,比如 Daocloud
julyclyde
2017 年 3 月 4 日
不要把容器当虚拟机一样长期运行
容器就是维护核心那一个进程的周边环境的东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/344790

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX