使用两个docker文件-dev和prod



Hei,

我正在使用一个docker文件为我的生产代码创建一个图像,其中不包括源代码:

FROM         node:latest
MAINTAINER   Fatima Alves
COPY         ./dist            /mya-app/dist/
COPY         ./s3options.json  /mya-app/
COPY         ./node_modules    /mya-app/node_modules
WORKDIR                        /mya-app
ENTRYPOINT   ["node", "./dist/"]

现在我想创建一个在我的机器中工作的图像,一个dev图像。在这种情况下,必须包括文件夹src,ENTRYPOINT将是["node", "./dist"]

是否可以将其包含在我的Dockerfile中,或者我需要两个文件,一个用于dev,另一个用于prod?

提前感谢!

上面的答案并不完全正确。

你应该这样使用

docker-compose -f docker-compose.yml -f docker-compose-dev.yml up

而CCD_ 5是生产型。这里的重点是,只在.dev文件中添加重写,例如,添加卷共享以装载代码,添加一些ENV变量,如RAILS_ENV=development,公开一些端口用于开发。

但是,您不想做的是复制生产文件,因为您希望尽可能接近生产。因此,最终,文件被合并,而右侧的文件在左侧文件中具有更高的权重/覆盖值。

如果设置是一个类似端口/卷的哈希映射,则这些设置会被深度合并,因此只需添加即可。

如果你正在使用MAC,你可以看看http://docker-sync.io-使用docker-sync-stack start,您可以获得快速的卷共享以及开箱即用的-dev文件支持-请参阅https://github.com/EugenMayer/docker-sync-boilerplate/tree/master/rsync-在这里,您可以看到一个dev/production文件作为示例

据我所知,您需要2个Dockerfiles。在我的环境中,我使用Dockerfile和Dockerfile.dev

docker build -f dockerfile.dev -t code:dev .

docker built -t code:prod .

相关内容

最新更新