我的工作流程包括三个阶段:
所有三个平台上的docker配置几乎相同,只有1个不同。在开发时,我通过VOLUME
挂载项目目录,而不是通过COPY
复制它。
现在我想知道什么是更好的做法?
为每个阶段创建一个Dockerfile,如此
project/
.docker
development
apache-php
Dockerfile
vhosts.conf
mariadb
Dockerfile
staging
apache-php
Dockerfile
vhosts.conf
mariadb
Dockerfile
etc.
或以某种方式有条件地将VOLUME
更改为COPY
,但我不知道这应该如何运作。
答案 0 :(得分:0)
创建一个不包含actual_string = actual_string.replace(new RegExp('@' + dynamic[i] + "@", 'g'), value);
/ COPY
步骤的基础图像,然后创建基于基本图像的开发,测试和生产Dockerfiles。
Base Dockerfile
VOLUME
然后构建基本映像,以便其他Dockerfiles可以引用它:FROM ubuntu:14.04
RUN echo test >> /important.txt
Dev Dockerfile
docker build -t baseimage .
构建并运行。
Prod Dockerfile
FROM myrepo:baseimage
VOLUME someVolume
构建并运行。
如果像以下那样使用,卷将覆盖conatiner文件:
FROM myrepo:baseimage
COPY src dest