From ab65ee3d01c7e9273180cf224c22f85f808e75b4 Mon Sep 17 00:00:00 2001 From: James Blair Date: Wed, 26 Apr 2023 17:09:25 +1200 Subject: [PATCH] Consolidate etcd dockerfiles. We can consolidate by using docker build args to create the individual platform Dockerfile. Signed-off-by: James Blair --- Dockerfile-release.amd64 => Dockerfile | 3 ++- Dockerfile-release.arm64 | 13 ------------- Dockerfile-release.ppc64le | 13 ------------- Dockerfile-release.s390x | 13 ------------- Makefile | 2 +- scripts/build-docker.sh | 8 ++++---- 6 files changed, 7 insertions(+), 45 deletions(-) rename Dockerfile-release.amd64 => Dockerfile (71%) delete mode 100644 Dockerfile-release.arm64 delete mode 100644 Dockerfile-release.ppc64le delete mode 100644 Dockerfile-release.s390x diff --git a/Dockerfile-release.amd64 b/Dockerfile similarity index 71% rename from Dockerfile-release.amd64 rename to Dockerfile index 4f2fcbed3..861a1d5b8 100644 --- a/Dockerfile-release.amd64 +++ b/Dockerfile @@ -1,4 +1,5 @@ -FROM --platform=linux/amd64 gcr.io/distroless/static-debian11 +ARG ARCH=amd64 +FROM --platform=linux/${ARCH} gcr.io/distroless/static-debian11 ADD etcd /usr/local/bin/ ADD etcdctl /usr/local/bin/ diff --git a/Dockerfile-release.arm64 b/Dockerfile-release.arm64 deleted file mode 100644 index c93763f66..000000000 --- a/Dockerfile-release.arm64 +++ /dev/null @@ -1,13 +0,0 @@ -FROM --platform=linux/arm64 gcr.io/distroless/static-debian11 - -ADD etcd /usr/local/bin/ -ADD etcdctl /usr/local/bin/ -ADD etcdutl /usr/local/bin/ - -WORKDIR /var/etcd/ -WORKDIR /var/lib/etcd/ - -EXPOSE 2379 2380 - -# Define default command. -CMD ["/usr/local/bin/etcd"] diff --git a/Dockerfile-release.ppc64le b/Dockerfile-release.ppc64le deleted file mode 100644 index 268e39741..000000000 --- a/Dockerfile-release.ppc64le +++ /dev/null @@ -1,13 +0,0 @@ -FROM --platform=linux/ppc64le gcr.io/distroless/static-debian11 - -ADD etcd /usr/local/bin/ -ADD etcdctl /usr/local/bin/ -ADD etcdutl /usr/local/bin/ - -WORKDIR /var/etcd/ -WORKDIR /var/lib/etcd/ - -EXPOSE 2379 2380 - -# Define default command. -CMD ["/usr/local/bin/etcd"] diff --git a/Dockerfile-release.s390x b/Dockerfile-release.s390x deleted file mode 100644 index 4a280551d..000000000 --- a/Dockerfile-release.s390x +++ /dev/null @@ -1,13 +0,0 @@ -FROM --platform=linux/s390x gcr.io/distroless/static-debian11 - -ADD etcd /usr/local/bin/ -ADD etcdctl /usr/local/bin/ -ADD etcdutl /usr/local/bin/ - -WORKDIR /var/etcd/ -WORKDIR /var/lib/etcd/ - -EXPOSE 2379 2380 - -# Define default command. -CMD ["/usr/local/bin/etcd"] diff --git a/Makefile b/Makefile index 87aec7eab..2716b7f82 100644 --- a/Makefile +++ b/Makefile @@ -137,7 +137,7 @@ verify-goimport: clean: rm -f ./codecov rm -rf ./covdir - rm -f ./bin/Dockerfile-release* + rm -f ./bin/Dockerfile-release rm -rf ./bin/etcd* rm -rf ./default.etcd rm -rf ./tests/e2e/default.etcd diff --git a/scripts/build-docker.sh b/scripts/build-docker.sh index 85bdbbf1f..6f86fb46a 100755 --- a/scripts/build-docker.sh +++ b/scripts/build-docker.sh @@ -15,10 +15,10 @@ fi ARCH=$(go env GOARCH) VERSION="${VERSION}-${ARCH}" -DOCKERFILE="Dockerfile-release.${ARCH}" +DOCKERFILE="Dockerfile" if [ -z "${BINARYDIR:-}" ]; then - RELEASE="etcd-${1}"-$(go env GOOS)-$(go env GOARCH) + RELEASE="etcd-${1}"-$(go env GOOS)-${ARCH} BINARYDIR="${RELEASE}" TARFILE="${RELEASE}.tar.gz" TARURL="https://github.com/etcd-io/etcd/releases/download/${1}/${TARFILE}" @@ -43,8 +43,8 @@ cat ./"${DOCKERFILE}" > "${IMAGEDIR}"/Dockerfile if [ -z "${TAG:-}" ]; then # Fix incorrect image "Architecture" using buildkit # From https://stackoverflow.com/q/72144329/ - DOCKER_BUILDKIT=1 docker build -t "gcr.io/etcd-development/etcd:${VERSION}" "${IMAGEDIR}" - DOCKER_BUILDKIT=1 docker build -t "quay.io/coreos/etcd:${VERSION}" "${IMAGEDIR}" + DOCKER_BUILDKIT=1 docker build --build-arg="ARCH=${ARCH}" -t "gcr.io/etcd-development/etcd:${VERSION}" "${IMAGEDIR}" + DOCKER_BUILDKIT=1 docker build --build-arg="ARCH=${ARCH}" -t "quay.io/coreos/etcd:${VERSION}" "${IMAGEDIR}" else docker build -t "${TAG}:${VERSION}" "${IMAGEDIR}" fi