包含docker-compose文件的目录(Include directory of docker-compose files)

我如何运行docker-compose.yml docker-compose与基础docker-compose.yml和docker-compose.yml -compose文件的整个目录。

就像我有这个目录结构一样:

parentdir docker-compose.yml folder1/ foo.yml bar.yml folder2/ foo.yml other.yml

如何在运行撰写时指定要运行哪些清单文件夹?

How can I run docker-compose with the base docker-compose.yml and a whole directory of docker-compose files.

Like if I had this directory structure:

parentdir docker-compose.yml folder1/ foo.yml bar.yml folder2/ foo.yml other.yml

How can I specify which folder of manifests to run when running compose?

最满意答案

我希望我能很好地理解你的问题。 您可以使用-f标志: docker-compose -f docker-compose1.yml

编辑 回答你的评论:不,你不能用docker-compose只用一个命令docker-compose几个文件。 您需要指定文件路径,而不是目录路径。 你可以做的是创建一个shell脚本,如:

#!/bin/bash DOCKERFILE_PATH=$DOCKER_PATH for dockerfile in $DOCKERFILE_PATH do if [[ -f $dockerfile ]]; then docker-compose -f $dockerfile fi; done

通过调用它: DOCKER_PATH=dockerfiles/* ./script.sh它将执行DOCKER_PATH=dockerfiles/* ./script.sh docker-compose -f与DOCKER_PATH每个文件。

( docs )

My best option was to have a run.bash file in the base directory of my project.

I then put all my compose files in say compose/ directory, then run it with this command:

docker-compose $(./run.bash) up

run.bash:

#!/usr/bin/env bash PROJECT_NAME='projectname' # need to set manually since it normally uses current directory as project name DOCKER_PATH=$PWD/compose/* MANIFESTS=' ' for dockerfile in $DOCKER_PATH do MANIFESTS="${MANIFESTS} -f $dockerfile" done MANIFESTS="${MANIFESTS} -p $PROJECT_NAME" echo $MANIFESTS包含docker-compose文件的目录(Include directory of docker-compose files)

我如何运行docker-compose.yml docker-compose与基础docker-compose.yml和docker-compose.yml -compose文件的整个目录。

就像我有这个目录结构一样:

parentdir docker-compose.yml folder1/ foo.yml bar.yml folder2/ foo.yml other.yml

如何在运行撰写时指定要运行哪些清单文件夹?

How can I run docker-compose with the base docker-compose.yml and a whole directory of docker-compose files.

Like if I had this directory structure:

parentdir docker-compose.yml folder1/ foo.yml bar.yml folder2/ foo.yml other.yml

How can I specify which folder of manifests to run when running compose?

最满意答案

我希望我能很好地理解你的问题。 您可以使用-f标志: docker-compose -f docker-compose1.yml

编辑 回答你的评论:不,你不能用docker-compose只用一个命令docker-compose几个文件。 您需要指定文件路径,而不是目录路径。 你可以做的是创建一个shell脚本,如:

#!/bin/bash DOCKERFILE_PATH=$DOCKER_PATH for dockerfile in $DOCKERFILE_PATH do if [[ -f $dockerfile ]]; then docker-compose -f $dockerfile fi; done

通过调用它: DOCKER_PATH=dockerfiles/* ./script.sh它将执行DOCKER_PATH=dockerfiles/* ./script.sh docker-compose -f与DOCKER_PATH每个文件。

( docs )

My best option was to have a run.bash file in the base directory of my project.

I then put all my compose files in say compose/ directory, then run it with this command:

docker-compose $(./run.bash) up

run.bash:

#!/usr/bin/env bash PROJECT_NAME='projectname' # need to set manually since it normally uses current directory as project name DOCKER_PATH=$PWD/compose/* MANIFESTS=' ' for dockerfile in $DOCKER_PATH do MANIFESTS="${MANIFESTS} -f $dockerfile" done MANIFESTS="${MANIFESTS} -p $PROJECT_NAME" echo $MANIFESTS