Run All Docker Compose stacks in sub-directories

For my home server, I have a number of docker-compose.yml files, one for each application I run, in a sub-directory. I wanted a way to automatically do a docker-compose up -d for all of the applications at once, so that I don't have to cd into each directory in turn.

My directory structure is:

cwd
 | - app1
 |    | - docker-compose.yml
 | - app2
 |    | - docker-compose.yml
 |    | - .env
 | - .env

Unfortunately the docker-compose command doesn't allow specifying a glob pattern to run. So a small script should do the trick:

export COMPOSE_FILES="$(find . | grep "docker-compose.yml")"

for COMPOSE_FILE in $COMPOSE_FILES
do
docker-compose -f $COMPOSE_FILE --env-file ./.env up -d --build
done

Running this script in the top level directory will now run all of my apps up at once.