Skip to content

Commit

Permalink
Make docker compose script more extensible and allow spaces in filenames
Browse files Browse the repository at this point in the history
  • Loading branch information
markshust authored Nov 22, 2023
2 parents e91eeb9 + 10f07b7 commit a5a73d5
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions compose/bin/docker-compose
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,23 @@ else
DOCKER_COMPOSE="docker-compose"
fi

COMPOSE_FILES=("compose.yaml" "compose.healthcheck.yaml")

# If --no-dev is passed to this script, we won't load the compose.dev.yaml file,
# but this argument should be removed so it isn't passed to docker compose.
if [ "$1" == "--no-dev" ]; then
${DOCKER_COMPOSE} -f compose.yaml -f compose.healthcheck.yaml "${@:2}"
# Remove the "--no-dev" argument so it isn't passed to docker compose
shift 1
else
${DOCKER_COMPOSE} -f compose.yaml -f compose.healthcheck.yaml -f compose.dev.yaml "$@"
# The "--no-dev" argument wasn't passed in, so let's load the dev config.
COMPOSE_FILES+=("compose.dev.yaml")
fi

# Loop over the list of compose files, and prefix them with -f.
# This ensures paths with spaces aren't split when passed as parameters.
COMPOSE_FILES_PREFIXED=()
for file in "${COMPOSE_FILES[@]}"; do
COMPOSE_FILES_PREFIXED+=("-f" "$file")
done

${DOCKER_COMPOSE} "${COMPOSE_FILES_PREFIXED[@]}" "$@"

0 comments on commit a5a73d5

Please sign in to comment.