From 8aace73c77250b91c1099d8f97419d3584ea81ba Mon Sep 17 00:00:00 2001 From: Benjamin Wang Date: Fri, 23 Dec 2022 18:43:44 +0800 Subject: [PATCH] 3.4: remove the dependency on busybox Signed-off-by: Benjamin Wang --- Dockerfile-release | 14 +++++--------- Dockerfile-release.arm64 | 11 ++++------- Dockerfile-release.ppc64le | 11 ++++------- nsswitch.conf | 2 ++ scripts/build-docker.sh | 2 ++ 5 files changed, 17 insertions(+), 23 deletions(-) create mode 100644 nsswitch.conf diff --git a/Dockerfile-release b/Dockerfile-release index 25f9271c6..e88b5a37c 100644 --- a/Dockerfile-release +++ b/Dockerfile-release @@ -1,19 +1,15 @@ -FROM --platform=linux/amd64 busybox:1.34.1 as source -FROM --platform=linux/amd64 gcr.io/distroless/base-debian11 - -COPY --from=source /bin/sh /bin/sh -COPY --from=source /bin/mkdir /bin/mkdir +FROM --platform=linux/amd64 gcr.io/distroless/static-debian11 ADD etcd /usr/local/bin/ ADD etcdctl /usr/local/bin/ -RUN mkdir -p /var/etcd/ -RUN mkdir -p /var/lib/etcd/ + +WORKDIR /var/etcd/ +WORKDIR /var/lib/etcd/ # Alpine Linux doesn't use pam, which means that there is no /etc/nsswitch.conf, # but Golang relies on /etc/nsswitch.conf to check the order of DNS resolving # (see https://github.com/golang/go/commit/9dee7771f561cf6aee081c0af6658cc81fac3918) -# To fix this we just create /etc/nsswitch.conf and add the following line: -RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf +ADD nsswitch.conf /etc/nsswitch.conf EXPOSE 2379 2380 diff --git a/Dockerfile-release.arm64 b/Dockerfile-release.arm64 index d960ee440..b8f28264c 100644 --- a/Dockerfile-release.arm64 +++ b/Dockerfile-release.arm64 @@ -1,13 +1,10 @@ -FROM --platform=linux/arm64 busybox:1.34.1 as source -FROM --platform=linux/arm64 gcr.io/distroless/base-debian11 - -COPY --from=source /bin/sh /bin/sh -COPY --from=source /bin/mkdir /bin/mkdir +FROM --platform=linux/arm64 gcr.io/distroless/static-debian11 ADD etcd /usr/local/bin/ ADD etcdctl /usr/local/bin/ -ADD var/etcd /var/etcd -ADD var/lib/etcd /var/lib/etcd + +WORKDIR /var/etcd/ +WORKDIR /var/lib/etcd/ EXPOSE 2379 2380 diff --git a/Dockerfile-release.ppc64le b/Dockerfile-release.ppc64le index 74bd72a97..82cab50cd 100644 --- a/Dockerfile-release.ppc64le +++ b/Dockerfile-release.ppc64le @@ -1,13 +1,10 @@ -FROM --platform=linux/ppc64le busybox:1.34.1 as source -FROM --platform=linux/ppc64le gcr.io/distroless/base-debian11 - -COPY --from=source /bin/sh /bin/sh -COPY --from=source /bin/mkdir /bin/mkdir +FROM --platform=linux/ppc64le gcr.io/distroless/static-debian11 ADD etcd /usr/local/bin/ ADD etcdctl /usr/local/bin/ -ADD var/etcd /var/etcd -ADD var/lib/etcd /var/lib/etcd + +WORKDIR /var/etcd/ +WORKDIR /var/lib/etcd/ EXPOSE 2379 2380 diff --git a/nsswitch.conf b/nsswitch.conf new file mode 100644 index 000000000..ad46648b3 --- /dev/null +++ b/nsswitch.conf @@ -0,0 +1,2 @@ +hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 + diff --git a/scripts/build-docker.sh b/scripts/build-docker.sh index 1e9db2301..1819d18f1 100755 --- a/scripts/build-docker.sh +++ b/scripts/build-docker.sh @@ -37,6 +37,8 @@ mkdir -p "${IMAGEDIR}"/var/etcd mkdir -p "${IMAGEDIR}"/var/lib/etcd cp "${BINARYDIR}"/etcd "${BINARYDIR}"/etcdctl "${IMAGEDIR}" +cp ./nsswitch.conf "${IMAGEDIR}" + cat ./"${DOCKERFILE}" > "${IMAGEDIR}"/Dockerfile if [ -z "$TAG" ]; then