From 10ec3c5803187a5e43c1e70259ce2404cc71d19e Mon Sep 17 00:00:00 2001 From: Garth Bushell Date: Tue, 27 Feb 2018 13:28:11 +0000 Subject: [PATCH] Support http proxy environment variables in docker build Signed-off-by: Garth Bushell --- src/cmd/linuxkit/pkglib/docker.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/cmd/linuxkit/pkglib/docker.go b/src/cmd/linuxkit/pkglib/docker.go index 2d8e5a901..afd1e96db 100644 --- a/src/cmd/linuxkit/pkglib/docker.go +++ b/src/cmd/linuxkit/pkglib/docker.go @@ -31,6 +31,15 @@ func isExecErrNotFound(err error) bool { return eerr.Err == exec.ErrNotFound } +var proxyEnvVars = []string{ + "http_proxy", + "https_proxy", + "no_proxy", + "HTTP_PROXY", + "HTTPS_PROXY", + "NO_PROXY", +} + func (dr dockerRunner) command(args ...string) error { cmd := exec.Command("docker", args...) cmd.Stdout = os.Stdout @@ -43,6 +52,17 @@ func (dr dockerRunner) command(args ...string) error { dct = dctEnableEnv + " " } + if args[0] == "build" { + buildArgs := []string{} + for _, proxyVarName := range proxyEnvVars { + if value, ok := os.LookupEnv(proxyVarName); ok { + buildArgs = append(buildArgs, + []string{"--build-arg", fmt.Sprintf("%s=%s", proxyVarName, value)}...) + } + } + cmd.Args = append(append(cmd.Args[:2], buildArgs...), cmd.Args[2:]...) + } + log.Debugf("Executing: %s%v", dct, cmd.Args) err := cmd.Run()