dev / production的多个Docker文件

我有一个Dockerfile和一个Dockerfile docker-compose.yml ,用于本地开发的Laravel应用程序。 它目前进行一些音量共享,以便代码更新立即反映出来。 docker-compose也为MySQL,Redis等提供容器

但是,为了准备将我的容器部署到生产(ECS),我想知道如何构build我的Dockerfile。

从本质上讲,在生产中,我需要做的其他几个步骤不会在Dockerfile的本地完成:

  • 安装依赖关系
  • 修改权限
  • 下载一个生产环境文件

我的第一个解决scheme是有一个构build脚本,它基本上将代码库,将其复制到一个空的子文件夹,在该文件夹中运行上述三个命令,然后运行docker build 。 这样,Dockerfile不需要在开发和生产之间进行更改,我可以在构build过程之前包含额外的步骤。

然而,缺点是前3个命令不包含在泊坞窗图像分层中。 所以即使我的依赖关系在最近的100次构build中没有改变,它仍然会从头开始每次都从头开始下载,这相当耗时。

另一个select是拥有多个docker文件,但是看起来不太干燥。

有处理这种情况的首选或标准化方法吗?