The docker-compose command is a wrapper around the real docker-compose that
provides compose-file relative resolution and composition of the COMPOSE_FILE environment variable and -f flag
values.
Specifically this is a solution for issues docker/compose#3874 and docker/compose#7546.
Requires a working Go installation:
(cd $(mktemp -d) && go mod init mod && go get github.com/myitcv/docker-compose)
Setting the COMPOSE_FILE allows you to compose docker-compose files from different projects:
export COMPOSE_FILE=/path/to/project1/docker-compose.yml:/path/to/project2/docker-compose.yml
docker-compose up -d
The result is the "merge" of the n input files.
You can specify additional config files either by augmenting the COMPOSE_FILE environment variable, or by supplying
-f flag values. Assuming the value of COMPOSE_FILE from above:
docker-compose -f prod.yml config
would be the result of composing /path/to/project1/docker-compose.yml,
/path/to/project2/docker-compose.yml and prod.yml.
Resolution of a config file happens relative to its containing directory. For example,
/path/to/project1/docker-compose.yml would be resolved relative to /path/to/project1.