From 4eec558e65a1320f65fecd36843410740cd6b8b1 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 30 Jun 2021 00:33:27 +0200 Subject: [PATCH 1/4] Fix build-script for docker-proxy (after libnetwork integration) libnetwork has been integrated in the docker/docker (moby) repository, and now is compiled as part of hack/make.sh dynbinary. Signed-off-by: Sebastiaan van Stijn --- deb/common/rules | 3 +-- rpm/SPECS/docker-ce.spec | 13 +++---------- 2 files changed, 4 insertions(+), 12 deletions(-) diff --git a/deb/common/rules b/deb/common/rules index ecfbc16bd9..92b8f8a143 100755 --- a/deb/common/rules +++ b/deb/common/rules @@ -7,7 +7,6 @@ override_dh_auto_build: # Build the daemon and dependencies cd engine && DOCKER_GITCOMMIT=$(ENGINE_GITCOMMIT) PRODUCT=docker ./hack/make.sh dynbinary cd engine && TMP_GOPATH="/go" hack/dockerfile/install/install.sh tini - cd engine && TMP_GOPATH="/go" hack/dockerfile/install/install.sh proxy dynamic cd engine && TMP_GOPATH="/go" hack/dockerfile/install/install.sh rootlesskit dynamic # Build the CLI cd /go/src/github.com/docker/cli && VERSION=$(VERSION) GITCOMMIT=$(CLI_GITCOMMIT) LDFLAGS='' GO_LINKMODE=dynamic ./scripts/build/binary && DISABLE_WARN_OUTSIDE_CONTAINER=1 LDFLAGS='' make manpages @@ -52,7 +51,7 @@ override_dh_auto_install: install -D -m 0644 engine/contrib/init/systemd/docker.service debian/docker-ce/lib/systemd/system/docker.service install -D -m 0644 engine/contrib/init/systemd/docker.socket debian/docker-ce/lib/systemd/system/docker.socket install -D -m 0755 $(shell readlink -e engine/bundles/dynbinary-daemon/dockerd) debian/docker-ce/usr/bin/dockerd - install -D -m 0755 /usr/local/bin/docker-proxy debian/docker-ce/usr/bin/docker-proxy + install -D -m 0755 $(shell readlink -e engine/bundles/dynbinary-daemon/docker-proxy) debian/docker-ce/usr/bin/docker-proxy install -D -m 0755 /usr/local/bin/docker-init debian/docker-ce/usr/bin/docker-init # docker-scan-plugin install diff --git a/rpm/SPECS/docker-ce.spec b/rpm/SPECS/docker-ce.spec index 4bbd7f6f8c..d1aa3d7bb2 100644 --- a/rpm/SPECS/docker-ce.spec +++ b/rpm/SPECS/docker-ce.spec @@ -79,9 +79,7 @@ mkdir -p /go/src/github.com/docker ln -s ${RPM_BUILD_DIR}/src/engine /go/src/github.com/docker/docker pushd ${RPM_BUILD_DIR}/src/engine -for component in tini "proxy dynamic";do - TMP_GOPATH="/go" hack/dockerfile/install/install.sh $component -done +TMP_GOPATH="/go" hack/dockerfile/install/install.sh tini VERSION=%{_origversion} PRODUCT=docker hack/make.sh dynbinary popd @@ -89,14 +87,9 @@ popd engine/bundles/dynbinary-daemon/dockerd -v %install -# install daemon binary install -D -p -m 0755 $(readlink -f engine/bundles/dynbinary-daemon/dockerd) ${RPM_BUILD_ROOT}%{_bindir}/dockerd - -# install proxy -install -D -p -m 0755 /usr/local/bin/docker-proxy ${RPM_BUILD_ROOT}%{_bindir}/docker-proxy - -# install tini -install -D -p -m 755 /usr/local/bin/docker-init ${RPM_BUILD_ROOT}%{_bindir}/docker-init +install -D -p -m 0755 $(readlink -f engine/bundles/dynbinary-daemon/docker-proxy) ${RPM_BUILD_ROOT}%{_bindir}/docker-proxy +install -D -p -m 0755 /usr/local/bin/docker-init ${RPM_BUILD_ROOT}%{_bindir}/docker-init # install systemd scripts install -D -m 0644 engine/contrib/init/systemd/docker.service ${RPM_BUILD_ROOT}%{_unitdir}/docker.service From 3d0e7c4e99f81723123e15431a4cde4a1d3219d6 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 30 Jun 2021 00:57:29 +0200 Subject: [PATCH 2/4] update default go version to 1.16.5 Signed-off-by: Sebastiaan van Stijn --- common.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.mk b/common.mk index 0d5554c333..6540c250f0 100644 --- a/common.mk +++ b/common.mk @@ -16,7 +16,7 @@ BUILDTIME=$(shell date -u -d "@$${SOURCE_DATE_EPOCH:-$$(date +%s)}" --rfc-3339 n CHOWN:=docker run --rm -v $(CURDIR):/v -w /v alpine chown DEFAULT_PRODUCT_LICENSE:=Community Engine DOCKER_GITCOMMIT:=abcdefg -GO_VERSION:=1.13.15 +GO_VERSION:=1.16.5 PLATFORM=Docker Engine - Community SHELL:=/bin/bash VERSION?=0.0.1-dev From 78242140d7f85863e8a8e3a133f3ebf73b9596ca Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 30 Jun 2021 09:59:54 +0200 Subject: [PATCH 3/4] Add libarchive build-dep to fix missing archive_write_add_filter_zstd Trying to fix + echo 'Install tini version de40ad007797e0dcd8b7126f27bb87401d224240' + git clone https://github.com/krallin/tini.git /go/tini Install tini version de40ad007797e0dcd8b7126f27bb87401d224240 Cloning into '/go/tini'... + cd /go/tini + git checkout -q de40ad007797e0dcd8b7126f27bb87401d224240 + cmake . cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd error: Bad exit status from /var/tmp/rpm-tmp.Dl5CDf (%build) According to https://bugs.centos.org/view.php?id=18212, upgrading to libarchive-3.3.3-1.el8.x86_64 should resolve the problem. Signed-off-by: Sebastiaan van Stijn --- rpm/SPECS/docker-ce.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/rpm/SPECS/docker-ce.spec b/rpm/SPECS/docker-ce.spec index d1aa3d7bb2..f90994232a 100644 --- a/rpm/SPECS/docker-ce.spec +++ b/rpm/SPECS/docker-ce.spec @@ -35,6 +35,7 @@ BuildRequires: device-mapper-devel BuildRequires: gcc BuildRequires: git BuildRequires: glibc-static +BuildRequires: libarchive BuildRequires: libseccomp-devel BuildRequires: libselinux-devel BuildRequires: libtool From 09541b553c2f7646626efcc2797bd92ee48a66d0 Mon Sep 17 00:00:00 2001 From: Sebastiaan van Stijn Date: Wed, 30 Jun 2021 13:16:51 +0200 Subject: [PATCH 4/4] static: fix location of Windows binary MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not sure why, but looks like the path used `-daemon` (instead of just ``). However, it's not consistent either, because `containerutility.exe` is in ``? When running: make REF=master checkout make REF=master DOCKER_BUILD_PKGS=cross-win static The build failed: mkdir -p build/win/amd64/docker cp /Users/sebastiaan/go/src/github.com/docker/docker-ce-packaging/src/github.com/docker/cli/build/docker-windows-amd64.exe build/win/amd64/docker/docker.exe cp /Users/sebastiaan/go/src/github.com/docker/docker-ce-packaging/src/github.com/docker/docker/bundles/cross/windows/amd64/dockerd-0.0.0-20210629140245-4a6fe51.exe build/win/amd64/docker/dockerd.exe cp: /Users/sebastiaan/go/src/github.com/docker/docker-ce-packaging/src/github.com/docker/docker/bundles/cross/windows/amd64/dockerd-0.0.0-20210629140245-4a6fe51.exe: No such file or directory make[1]: *** [cross-win] Error 1 make: *** [static] Error 2 This is what's in bundles: tree /Users/sebastiaan/go/src/github.com/docker/docker-ce-packaging/src/github.com/docker/docker/bundles/ /Users/sebastiaan/go/src/github.com/docker/docker-ce-packaging/src/github.com/docker/docker/bundles/ └── cross └── windows ├── amd64 │ └── containerutility.exe └── amd64-daemon ├── docker-proxy-0.0.0-20210629140245-4a6fe51.exe ├── docker-proxy-0.0.0-20210629140245-4a6fe51.exe.md5 ├── docker-proxy-0.0.0-20210629140245-4a6fe51.exe.sha256 ├── docker-proxy.exe -> docker-proxy-0.0.0-20210629140245-4a6fe51.exe ├── dockerd-0.0.0-20210629140245-4a6fe51.exe ├── dockerd-0.0.0-20210629140245-4a6fe51.exe.md5 ├── dockerd-0.0.0-20210629140245-4a6fe51.exe.sha256 └── dockerd.exe -> dockerd-0.0.0-20210629140245-4a6fe51.exe Signed-off-by: Sebastiaan van Stijn --- static/Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/static/Makefile b/static/Makefile index 97e2833132..76c2da4cb2 100644 --- a/static/Makefile +++ b/static/Makefile @@ -62,7 +62,8 @@ cross-win: cross-win-engine cross-win-plugins cd $(CLI_DIR) && VERSION=$(GEN_STATIC_VER) docker buildx bake --set binary.platform=windows/amd64 binary mkdir -p build/win/amd64/docker cp $(CLI_DIR)/build/docker-windows-amd64.exe build/win/amd64/docker/docker.exe - cp $(ENGINE_DIR)/bundles/cross/windows/amd64/dockerd-$(GEN_STATIC_VER).exe build/win/amd64/docker/dockerd.exe + cp $(ENGINE_DIR)/bundles/cross/windows/amd64-daemon/dockerd-$(GEN_STATIC_VER).exe build/win/amd64/docker/dockerd.exe + cp $(ENGINE_DIR)/bundles/cross/windows/amd64-daemon/docker-proxy-$(GEN_STATIC_VER).exe build/win/amd64/docker/dockerd.exe docker run --rm -v $(CURDIR)/build/win/amd64:/v -w /v alpine sh -c 'apk update&&apk add zip&&zip -r docker-$(GEN_STATIC_VER).zip docker' $(CHOWN) -R $(shell id -u):$(shell id -g) build