Skip to content

Commit

Permalink
build: pass Go module proxy variables through docker-go
Browse files Browse the repository at this point in the history
Previously, we always set `GOPRIVATE=*`, which blocked any use of the
public Go module mirror.

Now we pass the module proxy variables through from the environment,
so that the behavior is under the developer's control.
  • Loading branch information
bcressey committed Sep 15, 2020
1 parent 29903d4 commit c5f3397
Showing 1 changed file with 18 additions and 5 deletions.
23 changes: 18 additions & 5 deletions tools/docker-go
Original file line number Diff line number Diff line change
Expand Up @@ -54,18 +54,31 @@ DOCKER_RUN_ARGS="--network=host"

parse_args "${@}"

# Pass through relevant Go variables, from the config or environment.
go_env=( )
for i in GOPROXY GONOPROXY GOPRIVATE ; do
if command -v go >/dev/null 2>&1 ; then
govar="$(go env ${i})"
if [ -n "${govar}" ] ; then
go_env[${#go_env[@]}]="--env=${i}=${govar}"
fi
elif [ -n "${!i}" ] ; then
go_env[${#go_env[@]}]="--env=${i}=${!i}"
fi
done

# Go accepts both lower and uppercase proxy variables, pass both through.
proxy_env=( )
for i in http_proxy https_proxy no_proxy HTTP_PROXY HTTPS_PROXY NO_PROXY; do
if [ -n "${!i}" ]; then
proxy_env[${#proxy_env[@]}]="--env=$i=${!i}"
fi
for i in http_proxy https_proxy no_proxy HTTP_PROXY HTTPS_PROXY NO_PROXY ; do
if [ -n "${!i}" ]; then
proxy_env[${#proxy_env[@]}]="--env=$i=${!i}"
fi
done

docker run --rm \
-e GOPRIVATE='*' \
-e GOCACHE='/tmp/.cache' \
-e GOPATH='/tmp/go' \
"${go_env[@]}" \
"${proxy_env[@]}" \
--user "$(id -u):$(id -g)" \
--security-opt label:disable \
Expand Down

0 comments on commit c5f3397

Please sign in to comment.