请教一下 多个 container 配合完成一个编译操作的问题。

2019-08-31 22:26:29 +08:00
 sjmcefc2

有一台主机只有 docker 和 a,b,c 几个镜像, 然后这几个镜像会有 A,B,C 容器。 有一个脚本 abc.py ,需要用到 A,B,C 个容器中的程序才能完成编译。 这个 dockers run 该怎么写呢?--link ?

1735 次点击
所在节点    程序员
7 条回复
ETiV
2019-08-31 23:33:27 +08:00
使用 volume,来使得 3 个容器都能访问同一个宿主机下的路径 P (目录或者文件)

容器拉起来的时候用 --entrypoint /bin/bash [cmd=] -c "while true ; do sleep 30; done"

abc.py 里调用
docker exec XXX container-A cmd-build-a
docker exec XXX container-B cmd-build-b
docker exec XXX container-C cmd-build-c

cmd-build-x 里,输出结果的路径用 P 在 docker 内的路径
wweir
2019-08-31 23:59:54 +08:00
写个 dockerfile,使用 multi-stage build 把三个镜像结合成一个
sjmcefc2
2019-09-01 00:01:20 +08:00
感谢回复,有点没有描述清楚自己的想法。一台 rhel,container anaconda3,pgloader,pgsql
一个脚本 abc.py ,需要用 python3 abc.py 可是 abc.py 又需要依赖 pgloader 和 pgsql
sjmcefc2
2019-09-01 00:02:02 +08:00
@wweir 不搞成一个的有吗?不是不建议搞多个服务?
jybox
2019-09-01 02:32:15 +08:00
docker-compose 了解一下
VDimos
2019-09-01 10:26:56 +08:00
用多阶段构建吧,分三个镜像又慢又大
julyclyde
2019-09-02 12:33:33 +08:00
这不是穿上裤子再放屁么

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

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

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

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

© 2021 V2EX