如何在Docker中将卷更改为复制?
我的工作流程包括三个阶段:如何在Docker中将卷更改为复制?,docker,dockerfile,docker-compose,Docker,Dockerfile,Docker Compose,我的工作流程包括三个阶段: 发展 登台 生产 三个平台上的docker配置几乎相同,只有一个不同。在开发过程中,我通过VOLUME装载项目目录,而不是通过COPY复制它 现在我想知道什么是更好的练习 为每个阶段创建Dockerfile,如下所示 project/ .docker development apache-php Dockerfile vhosts.conf
VOLUME
装载项目目录,而不是通过COPY
复制它
现在我想知道什么是更好的练习
为每个阶段创建Dockerfile,如下所示
project/
.docker
development
apache-php
Dockerfile
vhosts.conf
mariadb
Dockerfile
staging
apache-php
Dockerfile
vhosts.conf
mariadb
Dockerfile
etc.
或者有条件地将卷
更改为复制
,但我不知道这应该如何工作。使用继承
创建一个不包含复制
/卷
步骤的基本映像,然后根据基本映像创建开发、测试和生产DockerFile
例子
基本Dockerfile
然后构建基础映像,以便其他docker文件可以引用它:docker build-t baseimage。
开发文档
构建并运行
生产文件
构建并运行
有趣的
如果这样使用,卷将覆盖conatiner文件:
docke run -it -v ~/some.txt:/some/container/folder
谢谢你的回答。在这种情况下,必须在系统上准备好基本映像。我不使用dockers存储库。是否有方法指定本地Dockerfile或具有FROM的上下文?据我所知:是的,您必须在本地构建它一次。@michaelbahr“卷将覆盖容器文件”--然后我假设,如果基础映像已经包含复制步骤,它可以被稍后在构建中声明的卷覆盖?例如,通过。
FROM myrepo:baseimage
VOLUME someVolume
FROM myrepo:baseimage
COPY src dest
docke run -it -v ~/some.txt:/some/container/folder