我有一个Laravel应用程序,其Dockerfile
和docker-compose.yml
用于本地开发。它目前进行一些卷共享,以便立即反映代码更新。 docker-compose
还为MySQL,Redis等传播容器
但是,在准备将我的容器部署到生产(ECS)时,我想知道如何最好地构建我的Dockerfile。
基本上,在生产方面,我需要做的其他几个步骤不会在Dockerfile中本地完成:
我的第一个解决方案是拥有一个构建脚本,它基本上接受代码库,将其复制到空子文件夹,在该文件夹中运行上述三个命令,然后运行docker build
。这样,Dockerfile不需要在开发和生产之间进行更改,我可以在构建过程之前包含额外的步骤。
但是,缺点是前三个命令不会作为docker图像分层的一部分包含在内。因此,即使我的依赖项在最近的100个版本中没有改变,它仍然会每次都从头开始下载它们,这相当耗时。
另一个选择是拥有多个docker文件,但这似乎不是很干。
是否有处理此类情况的首选或标准化方法?