dotnet-installer/scripts/dockerbuild.sh
Bryan Thornbury 9d4887ef75 Enable Ubuntu CI Build using Docker
These changes fix many of the issues blocking our Ubuntu CI Build.
Notably, it adds a postbuild step to the CI which cleans up file
permissions on files created in Docker. This lets the next job
delete those files successfully. It also accounts for docker instances
which are left running after an aborted job.
2015-10-26 11:09:38 -07:00

30 lines
1.1 KiB
Bash
Executable file

#!/usr/bin/env bash
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
done
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
cd $DIR/..
[ -z "$DOTNET_BUILD_CONTAINER_TAG" ] && DOTNET_BUILD_CONTAINER_TAG="dotnetcli-build"
[ -z "$DOTNET_BUILD_CONTAINER_NAME" ] && DOTNET_BUILD_CONTAINER_NAME="dotnetcli-build-container"
[ -z "$DOCKER_HOST_SHARE_DIR" ] && DOCKER_HOST_SHARE_DIR=$(pwd)
[ -z "$BUILD_COMMAND" ] && BUILD_COMMAND="/opt/code/build.sh"
echo $DOCKER_HOST_SHARE_DIR
# Build the docker container (will be fast if it is already built)
docker build -t $DOTNET_BUILD_CONTAINER_TAG scripts/docker/
# Run the build in the container
docker run --rm --sig-proxy=true \
--name $DOTNET_BUILD_CONTAINER_NAME \
-v $DOCKER_HOST_SHARE_DIR:/opt/code \
-e DOTNET_BUILD_VERSION=$DOTNET_BUILD_VERSION \
$DOTNET_BUILD_CONTAINER_TAG $BUILD_COMMAND $1