mirror of
				https://github.com/docker/compose.git
				synced 2025-11-04 05:34:09 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
#
 | 
						|
# 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 -e
 | 
						|
 | 
						|
VERSION="1.6.2"
 | 
						|
IMAGE="docker/compose:$VERSION"
 | 
						|
 | 
						|
 | 
						|
# Setup options for connecting to docker host
 | 
						|
if [ -z "$DOCKER_HOST" ]; then
 | 
						|
    DOCKER_HOST="/var/run/docker.sock"
 | 
						|
fi
 | 
						|
if [ -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 context
 | 
						|
if [ "$(pwd)" != '/' ]; then
 | 
						|
    VOLUMES="-v $(pwd):$(pwd)"
 | 
						|
fi
 | 
						|
if [ -n "$COMPOSE_FILE" ]; then
 | 
						|
    compose_dir=$(dirname $COMPOSE_FILE)
 | 
						|
fi
 | 
						|
# TODO: also check --file argument
 | 
						|
if [ -n "$compose_dir" ]; then
 | 
						|
    VOLUMES="$VOLUMES -v $compose_dir:$compose_dir"
 | 
						|
fi
 | 
						|
if [ -n "$HOME" ]; then
 | 
						|
    VOLUMES="$VOLUMES -v $HOME:$HOME -v $HOME:/root" # mount $HOME in /root to share docker.config
 | 
						|
fi
 | 
						|
 | 
						|
# Only allocate tty if we detect one
 | 
						|
if [ -t 1 ]; then
 | 
						|
    DOCKER_RUN_OPTIONS="-t"
 | 
						|
fi
 | 
						|
if [ -t 0 ]; then
 | 
						|
    DOCKER_RUN_OPTIONS="$DOCKER_RUN_OPTIONS -i"
 | 
						|
fi
 | 
						|
 | 
						|
exec docker run --rm $DOCKER_RUN_OPTIONS $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w "$(pwd)" $IMAGE "$@"
 |