Powershell script to run compose in a container.

This script assumes the typical environment that Windows users operate,
namely, VirtualBox running the boot2docker ISO, managed by
docker-machine. I wrote this script for my Windows using colleagues and
first placed it in the public domain as a gist:
https://gist.github.com/au-phiware/25213e72c80040f398ba
In short, that script works for me.

I have adapted that script to use the (yet to be) official image
(docker/compose:latest) and also added an extra environment variable to
provide additional options to docker run.

Signed-off-by: Corin Lawson <corin@phiware.com.au>
This commit is contained in:
Corin Lawson 2015-10-19 21:47:01 +11:00
parent ae3c66baed
commit 4d8e667c3e
1 changed files with 22 additions and 0 deletions

22
script/run.ps1 Normal file
View File

@ -0,0 +1,22 @@
# Run docker-compose in a container via boot2docker.
#
# The current directory will be mirrored as a volume and additional
# volumes (or any other options) can be mounted by using
# $Env:DOCKER_COMPOSE_OPTIONS.
if ($Env:DOCKER_COMPOSE_VERSION -eq $null -or $Env:DOCKER_COMPOSE_VERSION.Length -eq 0) {
$Env:DOCKER_COMPOSE_VERSION = "latest"
}
if ($Env:DOCKER_COMPOSE_OPTIONS -eq $null) {
$Env:DOCKER_COMPOSE_OPTIONS = ""
}
if (-not $Env:DOCKER_HOST) {
docker-machine env --shell=powershell default | Invoke-Expression
if (-not $?) { exit $LastExitCode }
}
$local="/$($PWD -replace '^(.):(.*)$', '"$1".ToLower()+"$2".Replace("\","/")' | Invoke-Expression)"
docker run --rm -ti -v /var/run/docker.sock:/var/run/docker.sock -v "${local}:$local" -w "$local" $Env:DOCKER_COMPOSE_OPTIONS "docker/compose:$Env:DOCKER_COMPOSE_VERSION" $args
exit $LastExitCode