| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | #!/bin/sh## Run docker-compose in a container## This script will attempt to mirror the host paths by using volumes for the# following paths:#   * $(pwd)#   * $(dirname $COMPOSE_FILE) if it's set#   * $HOME if it's set## You can add additional volumes (or any docker run options) using# the $COMPOSE_OPTIONS environment variable.#set -eVERSION="1.26.0-rc4"IMAGE="docker/compose:$VERSION"# Setup options for connecting to docker hostif [ -z "$DOCKER_HOST" ]; then    DOCKER_HOST="/var/run/docker.sock"fiif [ -S "$DOCKER_HOST" ]; then    DOCKER_ADDR="-v $DOCKER_HOST:$DOCKER_HOST -e DOCKER_HOST"else    DOCKER_ADDR="-e DOCKER_HOST -e DOCKER_TLS_VERIFY -e DOCKER_CERT_PATH"fi# Setup volume mounts for compose config and contextif [ "$(pwd)" != '/' ]; then    VOLUMES="-v $(pwd):$(pwd)"fiif [ -n "$COMPOSE_FILE" ]; then    COMPOSE_OPTIONS="$COMPOSE_OPTIONS -e COMPOSE_FILE=$COMPOSE_FILE"    compose_dir=$(realpath "$(dirname "$COMPOSE_FILE")")fi# TODO: also check --file argumentif [ -n "$compose_dir" ]; then    VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"fiif [ -n "$HOME" ]; then    VOLUMES="$VOLUMES -v $HOME:$HOME -e HOME" # Pass in HOME to share docker.config and allow ~/-relative paths to work.fi# Only allocate tty if we detect oneif [ -t 0 ] && [ -t 1 ]; then    DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -t"fi# Always set -i to support piped and terminal input in run/execDOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"# Handle userns securityif docker info --format '{{json .SecurityOptions}}' 2>/dev/null | grep -q 'name=userns'; then    DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS --userns=host"fi# shellcheck disable=SC2086exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"
 |