请教关于基于 docker 开发的一个问题

2021-04-11 08:38:22 +08:00
 zxCoder

我现在有一个 docker 镜像,里面装了一些基础工具,然后我的代码是需要用到这个环境,比如代码里写subprocess.run(["ls", "-l", "/dev/null"])执行一些这个环境的命令,然后再把我的代码基于这个镜像再打包成一个新的镜像。

这个做法合理吗?我在开发的时候应该怎么做呢?

是不管这个镜像,直接在本地装好这些环境,然后打包的时候再基于这个镜像打包呢?

还是可以怎么利用上这个镜像,启动个容器再连接上去感觉也不太好,到时候打包还得改代码吧?

1435 次点击
所在节点    问与答
11 条回复
binux
2021-04-11 08:45:03 +08:00
当然可以了,我也没见谁 FROM scratch 建一个镜像啊
k9982874
2021-04-11 08:47:40 +08:00
合理,docker 也有方案。google docker multi stage build
hanxiV2EX
2021-04-11 08:56:15 +08:00
基础镜像可以推到 hub 上去
hanxiV2EX
2021-04-11 09:00:47 +08:00
但是一般为了保持很小镜像的,都会用楼上说的多个 stage 来写 dockerfile 的,区分编译阶段和运行阶段。
zxCoder
2021-04-11 09:02:31 +08:00
@hanxiV2EX 但我还是没懂本地开发要怎么做...
shm7
2021-04-11 10:42:52 +08:00
以 docker 基础镜像 为基础,添加自己的组件和代码,制成自己的镜像,是基本操作。没听说过这方面的法律问题,如果有这个基础镜像的制作者会专门说明,你去找找。
psyer
2021-04-11 10:48:18 +08:00
@hanxiV2EX 好家伙,搜了一下 multi stage,感觉很不错。我有个高可用 Hadoop HBase HA 镜像本地 1.5G 左右,不过仓库显示才 500 多 M,是真的大大大。
SjwNo1
2021-04-11 10:51:48 +08:00
临时就起个基础镜像 exec 进去开发
否则甚至可以 commit 打一个新镜像
hanxiV2EX
2021-04-11 23:04:27 +08:00
@zxCoder 就是写 dockerfile 呀
zxCoder
2021-04-12 08:14:43 +08:00
@hanxiV2EX dockerfile 不是打包部署的时候用吗
hanxiV2EX
2021-04-12 11:32:19 +08:00
@zxCoder 本地用 dockerfile 配合 docker-composer 可以很方便的管理

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

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

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

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

© 2021 V2EX