我不确定是否应该为我的Node.js应用程序创建不同的Dockerfile
文件,一个文件用于生产环境,不包含开发依赖项,另一个文件用于测试,包含开发依赖项。
或者只使用一个开发Dockerfile.dev
文件,两个文件的主要区别在于npm安装命令:
生产环境:
FROM ...
...
RUN npm install --quiet --production
...
CMD ...
开发/测试:
FROM ...
...
RUN npm install
...
CMD ...
我提出这个问题是因为我希望可以通过docker run
命令在容器内运行我的测试。因此,我需要测试依赖项(通常是我需要的开发依赖项)。
将不需要在生产环境中使用的依赖项放入镜像中似乎有点奇怪。另一方面,创建/维护一个仅有微小差别的第二个Dockerfile.dev 也不太合适。那么,对于这种问题,有什么好的做法呢?