summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Dockerfile4
-rw-r--r--hack/make/.binary22
-rw-r--r--hack/make/binary-daemon1
-rw-r--r--hack/make/binary-proxy2
4 files changed, 16 insertions, 13 deletions
diff --git a/Dockerfile b/Dockerfile
index 3632f5f614..2606e856dd 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -582,8 +582,8 @@ RUN --mount=type=bind,target=. \
target=$([ "$DOCKER_STATIC" = "1" ] && echo "binary" || echo "dynbinary")
xx-go --wrap
./hack/make.sh $target
- xx-verify /tmp/bundles/${target}-daemon/dockerd$([ "$(xx-info os)" = "windows" ] && echo ".exe")
- xx-verify /tmp/bundles/${target}-daemon/docker-proxy$([ "$(xx-info os)" = "windows" ] && echo ".exe")
+ xx-verify $([ "$DOCKER_STATIC" = "1" ] && echo "--static") /tmp/bundles/${target}-daemon/dockerd$([ "$(xx-info os)" = "windows" ] && echo ".exe")
+ xx-verify $([ "$DOCKER_STATIC" = "1" ] && echo "--static") /tmp/bundles/${target}-daemon/docker-proxy$([ "$(xx-info os)" = "windows" ] && echo ".exe")
mkdir /build
mv /tmp/bundles/${target}-daemon/* /build/
EOT
diff --git a/hack/make/.binary b/hack/make/.binary
index 8b412b5a72..8c1769ec1e 100644
--- a/hack/make/.binary
+++ b/hack/make/.binary
@@ -73,15 +73,17 @@ source "${MAKEDIR}/.go-autogen"
# -buildmode=pie is not supported on Windows and Linux on mips, riscv64 and ppc64be.
# https://github.com/golang/go/blob/77aa209b386a184e7f4b44938f2a05a1b5c5a3cf/src/cmd/internal/sys/supported.go#L89-L99
- case "$(go env GOOS)/$(go env GOARCH)" in
- windows/* | linux/mips* | linux/riscv* | linux/ppc64) ;;
- # TODO remove windows in Go 1.15+: https://github.com/golang/go/commit/95f382139043059a2a0780ba577b53893408f7e4
- # TODO remove riscv64 in Go 1.16+: https://github.com/golang/go/commit/8eb846fd37eb7bded8a1cf6932be2c59069863e5
-
- *)
- BUILDFLAGS+=("-buildmode=pie")
- ;;
- esac
+ if ! [ "$DOCKER_STATIC" = "1" ]; then
+ case "$(go env GOOS)/$(go env GOARCH)" in
+ windows/* | linux/mips* | linux/riscv* | linux/ppc64) ;;
+ # TODO remove windows in Go 1.15+: https://github.com/golang/go/commit/95f382139043059a2a0780ba577b53893408f7e4
+ # TODO remove riscv64 in Go 1.16+: https://github.com/golang/go/commit/8eb846fd37eb7bded8a1cf6932be2c59069863e5
+
+ *)
+ BUILDFLAGS+=("-buildmode=pie")
+ ;;
+ esac
+ fi
# only necessary for non-sandboxed invocation where TARGETPLATFORM is empty
PLATFORM_NAME=$TARGETPLATFORM
@@ -94,7 +96,7 @@ source "${MAKEDIR}/.go-autogen"
fi
fi
- echo "Building $DEST/$BINARY_FULLNAME ($PLATFORM_NAME)..."
+ echo "Building $([ "$DOCKER_STATIC" = "1" ] && echo "static" || echo "dynamic") $DEST/$BINARY_FULLNAME ($PLATFORM_NAME)..."
go build \
-o "$DEST/$BINARY_FULLNAME" \
"${BUILDFLAGS[@]}" \
diff --git a/hack/make/binary-daemon b/hack/make/binary-daemon
index 02ec3ce56b..0d8877bc02 100644
--- a/hack/make/binary-daemon
+++ b/hack/make/binary-daemon
@@ -4,6 +4,7 @@ set -e
[ -z "$KEEPDEST" ] && rm -rf "$DEST"
(
+ DOCKER_STATIC=1
GO_PACKAGE='github.com/docker/docker/cmd/dockerd'
BINARY_NAME='dockerd'
source "${MAKEDIR}/.binary"
diff --git a/hack/make/binary-proxy b/hack/make/binary-proxy
index 011cf9d500..9fa51f76cd 100644
--- a/hack/make/binary-proxy
+++ b/hack/make/binary-proxy
@@ -5,8 +5,8 @@ set -e
(
export CGO_ENABLED=0
+ DOCKER_STATIC=1
GO_PACKAGE='github.com/docker/docker/cmd/docker-proxy'
BINARY_NAME='docker-proxy'
-
source "${MAKEDIR}/.binary"
)