Rails Rails 7 中使用 Docker 时需要在其中安装 NodeJs 吗?

laocainiao · 2022年02月10日 · 最后由 myyjjpp 回复于 2022年02月13日 · 566 次阅读

根据 Docker 的理念 最终的软件应该是像一块块积木搭建起来的一样,加上 Rails 7 中对于 JS 依赖的解耦,现如今你们还会直接在 Dockerfile 中声明安装 NodeJs 的环境和相关的打包工具吗?毕竟 Rails production 环境的镜像最终只需要构建好的 assets 文件,如果这样搞好了,我感觉构建出来的镜像应该会简洁很多。

所以关于这一块有什么实践吗?有相关的文档吗?对于在 docker-compose 中如何搭配协作、先后顺序、文件互访这一块感觉还不太明了。

可以用 multi-stage 把构建过程分开,构建好之后把文件从 builder stage 拷贝到 production stage

https://docs.docker.com/develop/develop-images/multistage-build/

docker-compose 也支持指定需要构建到哪个 stage。

https://docs.docker.com/compose/compose-file/compose-file-v3/#target

不需要吧,你都用 docker 了,都是在里面构建好的呀

multi-stage 来就行 偷个懒也可以都打到一起

需要 登录 后方可回复, 如果你还没有账号请 注册新账号