b122190cd8
These changes will use docker's new Dockerfile Arguments to pass the Host User ID to the docker container at build time. This allows the docker container to set it's internal user to match that of the host. When using shared volumes between the host and container, this prevents files created in the container from being owned by root. This will solve our problem of needing a cleanup step after every ubuntu CI run.
44 lines
1.6 KiB
Bash
Executable file
44 lines
1.6 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) .NET Foundation and contributors. All rights reserved.
|
|
# Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
#
|
|
|
|
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 )"
|
|
|
|
source $DIR/../_common.sh
|
|
|
|
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"
|
|
|
|
# Build the docker container (will be fast if it is already built)
|
|
header "Building Docker Container"
|
|
docker build --build-arg USER_ID=$(id -u) -t $DOTNET_BUILD_CONTAINER_TAG scripts/docker/
|
|
|
|
# Run the build in the container
|
|
header "Launching build in Docker Container"
|
|
info "Using code from: $DOCKER_HOST_SHARE_DIR"
|
|
docker run -t --rm --sig-proxy=true \
|
|
--name $DOTNET_BUILD_CONTAINER_NAME \
|
|
-v $DOCKER_HOST_SHARE_DIR:/opt/code \
|
|
-e DOTNET_BUILD_VERSION \
|
|
-e SASTOKEN \
|
|
-e STORAGE_ACCOUNT \
|
|
-e STORAGE_CONTAINER \
|
|
-e CHANNEL \
|
|
-e CONNECTION_STRING \
|
|
-e REPO_ID \
|
|
-e REPO_USER \
|
|
-e REPO_PASS \
|
|
-e REPO_SERVER \
|
|
$DOTNET_BUILD_CONTAINER_TAG $BUILD_COMMAND $1
|