容器镜像,是会把依赖一起打包进入镜像吗?
我有一个:前端项目,想要打包为容器,是否里面的node_modules 目录也应该一起被打包?
前端项目部署打包镜像的时候是不会打包 node_modules 的,只需要保留 build 之后生成的文件。甚至你连项目原代码都不需要打包的镜像里面。
除非你的容器在运行的时候,是直接使用 npm run dev 这种方式运行,这种情况才需要 node_modules。当然这个是错误的部署/运行方式。
正常情况下,你在打包镜像的时候,应该执行 npm run build (或者别的命令)进行打包,等build 完成之后,一般会生成 dist 文件,这里面就是前端打包的产物。你只需要用到这个dist文件夹下的文件,再配合 nginx 或者 caddy 这样的web服务完成镜像制作。
11 回答1.3k 阅读
3 回答965 阅读✓ 已解决
2 回答961 阅读✓ 已解决
3 回答950 阅读✓ 已解决
2 回答649 阅读
3 回答798 阅读✓ 已解决
3 回答972 阅读
肯定要一起打包的。容器不就是为了交付分发用的吗?不打包依赖你怎么运行呢?
甚至极端一点的产品环境可能连公网访问权限都没有,你连下载依赖都做不到。所以肯定是要把整个运行时一起打包进去的,做到启动的时候不联网都可以直接启动