dockcross: Add support for Windows

Tested on Git Bash and Bash on Ubuntu for Windows.

There are some issue with building the Docker image itself, but using the
images works great.
This commit is contained in:
Matt McCormick 2016-11-16 19:02:55 -08:00
parent 46e4b18ebf
commit d9d65ffcc9
2 changed files with 22 additions and 5 deletions

View File

@ -10,7 +10,7 @@ DOCKER = docker
ORG = dockcross
# Directory where to generate the dockcross script for each images (e.g bin/dockcross-manylinux-x64)
BIN = bin
BIN = ./bin
# These images are built using the "build implicit rule"
STANDARD_IMAGES = android-arm linux-x86 linux-x64 linux-arm64 linux-armv5 linux-armv6 linux-armv7 linux-ppc64le windows-x86 windows-x64
@ -95,7 +95,7 @@ manylinux-x86.test: manylinux-x86
Dockerfile: Dockerfile.in common.docker
sed '/common.docker/ r common.docker' Dockerfile.in > Dockerfile
base: Dockerfile
base: Dockerfile imagefiles/
$(DOCKER) build -t $(ORG)/base \
--build-arg IMAGE=$(ORG)/base \
--build-arg VCS_REF=`git rev-parse --short HEAD` \

View File

@ -171,18 +171,35 @@ fi
# Set the docker run extra args (if any)
FINAL_ARGS=${ARG_ARGS-${DOCKCROSS_ARGS}}
# If we are not running via boot2docker
if [ -z $DOCKER_HOST ]; then
# Bash on Ubuntu on Windows
UBUNTU_ON_WINDOWS=$(grep -l Microsoft /proc/version)
# MSYS, Git Bash, etc.
MSYS=$(grep -l MINGW /proc/version)
if [ -z "$UBUNTU_ON_WINDOWS" -a -z "$MSYS" ]; then
USER_IDS="-e BUILDER_UID=$( id -u ) -e BUILDER_GID=$( id -g ) -e BUILDER_USER=$( id -un ) -e BUILDER_GROUP=$( id -gn )"
fi
# Change the PWD when working in Docker on Windows
if [ -n "$UBUNTU_ON_WINDOWS" ]; then
HOST_PWD=$PWD
HOST_PWD=${HOST_PWD/\/mnt\//}
HOST_PWD=${HOST_PWD/\//:\/}
elif [ -n "$MSYS" ]; then
HOST_PWD=$PWD
HOST_PWD=${HOST_PWD/\//}
HOST_PWD=${HOST_PWD/\//:\/}
else
HOST_PWD=$PWD
fi
#------------------------------------------------------------------------------
# Now, finally, run the command in a container
#
tty -s && TTY_ARGS=-ti || TTY_ARGS=
CONTAINER_NAME=dockcross_$RANDOM
docker run $TTY_ARGS --name $CONTAINER_NAME \
-v $PWD:/work \
-v $HOST_PWD:/work \
$USER_IDS \
$FINAL_ARGS \
$FINAL_IMAGE "$@"