2015-07-26 01:47:36 +02:00
|
|
|
#!/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
|
|
|
|
|
2015-10-07 17:00:40 +02:00
|
|
|
VERSION="1.5.0"
|
|
|
|
IMAGE="docker/compose:$VERSION"
|
2015-07-26 01:47:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
# 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"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Setup volume mounts for compose config and context
|
|
|
|
VOLUMES="-v $(pwd):$(pwd)"
|
|
|
|
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"
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
exec docker run --rm -ti $DOCKER_ADDR $COMPOSE_OPTIONS $VOLUMES -w $(pwd) $IMAGE $@
|