如何 `git push` 到容器内?

2017-03-04 00:33:34 +08:00
 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 的话就会在容器内运行了。可是如何做到呢?

3395 次点击
所在节点    Docker
18 条回复
shyling
2017-03-04 01:47:50 +08:00
别这样做。。
sneezry
2017-03-04 02:03:32 +08:00
别把数据和环境混到一起
newton108
2017-03-04 02:44:57 +08:00
@shyling
@sneezry
不懂,那怎么办?
Docker 到底该怎么用?

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

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

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

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

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

© 2021 V2EX