Docker compose 将文件从项目文件夹复制到主机,并在我的容器中使用它们

Docker compose 将文件从项目文件夹复制到主机,并在我的容器中使用它们,docker-compose,dockerfile,Docker Compose,Dockerfile,我有一个docker compose文件,用于从3个不同的docker文件构建三个不同的图像 在我的项目结构中,我有一些文件要复制到主机中的特定文件夹中,因为这些文件将由其中一个容器使用。 我不希望这些文件夹在我的容器中,因为每当我在其中一个文件上更改某些内容时,我都需要重新构建图像 当我运行docker compose build时,如何自动将文件从我的项目复制到主机上,而不是使用命令行进行复制?不幸的是,docker compose没有诸如预脚本或后脚本这样的概念。实现目标的最简单方法是创建

我有一个docker compose文件,用于从3个不同的docker文件构建三个不同的图像

在我的项目结构中,我有一些文件要复制到主机中的特定文件夹中,因为这些文件将由其中一个容器使用。
我不希望这些文件夹在我的容器中,因为每当我在其中一个文件上更改某些内容时,我都需要重新构建图像


当我运行
docker compose build
时,如何自动将文件从我的项目复制到主机上,而不是使用命令行进行复制?

不幸的是,docker compose没有诸如预脚本或后脚本这样的概念。实现目标的最简单方法是创建一个shell脚本,该脚本将复制文件并调用docker compose。如果出于某种原因,您仅限于调用docker compose本身,则可以创建其他“设置”容器,以便在启动其他容器之前复制文件:

版本:“3”
服务:
#安装容器从项目目录project\u DIR复制文件
#到主机上的另一个目录HOST_DIR
设置:
图片:阿尔卑斯山:最新
卷数:
-${PROJECT\u DIR}:/PROJECT
-${HOST\u DIR}:/HOST
命令:>
sh-c“cp-R/project/*/host/”
#服务容器依赖于安装容器并使用来自的文件
#装载到容器目录的主机目录host\u DIR
服务:
图片:阿尔卑斯山:最新
取决于:
-设置
卷数:
-${HOST\u DIR}:${CONTAINER\u DIR}
命令:>
sh-c“ls${CONTAINER_DIR}”

不幸的是,docker compose没有诸如前脚本或后脚本这样的概念。实现目标的最简单方法是创建一个shell脚本,该脚本将复制文件并调用docker compose。如果出于某种原因,您仅限于调用docker compose本身,则可以创建其他“设置”容器,以便在启动其他容器之前复制文件:

版本:“3”
服务:
#安装容器从项目目录project\u DIR复制文件
#到主机上的另一个目录HOST_DIR
设置:
图片:阿尔卑斯山:最新
卷数:
-${PROJECT\u DIR}:/PROJECT
-${HOST\u DIR}:/HOST
命令:>
sh-c“cp-R/project/*/host/”
#服务容器依赖于安装容器并使用来自的文件
#装载到容器目录的主机目录host\u DIR
服务:
图片:阿尔卑斯山:最新
取决于:
-设置
卷数:
-${HOST\u DIR}:${CONTAINER\u DIR}
命令:>
sh-c“ls${CONTAINER_DIR}”