Skip to content

Commit 0b20bac

Browse files
Zhupkuk8s-infra-cherrypick-robot
authored andcommitted
fix: CVE-2024-38428 remove wget to close vuln, reduce image size
1 parent 4abf868 commit 0b20bac

File tree

1 file changed

+46
-31
lines changed

1 file changed

+46
-31
lines changed

pkg/blobplugin/Dockerfile

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,47 @@
1212
# See the License for the specific language governing permissions and
1313
# limitations under the License.
1414

15-
FROM registry.k8s.io/build-image/debian-base:bookworm-v1.0.3
16-
1715
ARG ARCH=amd64
16+
17+
FROM registry.k8s.io/build-image/debian-base:bookworm-v1.0.3 AS base
18+
19+
FROM base AS builder
20+
21+
ARG ARCH
22+
23+
RUN apt update \
24+
&& apt install -y curl
25+
26+
# install aznfs
27+
ARG aznfsVer=2.0.7
28+
ARG anzfsArch=x86_64
29+
RUN if [ "$ARCH" = "arm64" ]; then \
30+
anzfsArch="arm64"; \
31+
fi
32+
RUN curl -Ls https://github.com/Azure/AZNFS-mount/releases/download/${aznfsVer}/aznfs-${aznfsVer}-1.${anzfsArch}.tar.gz | tar xvzf - -C / --keep-directory-symlink
33+
34+
# install azcopy
35+
RUN curl -Ls https://azcopyvnext.azureedge.net/releases/release-10.26.0-20240731/azcopy_linux_${ARCH}_10.26.0.tar.gz \
36+
| tar xvzf - --strip-components=1 -C /usr/local/bin/ --wildcards "*/azcopy"
37+
38+
# download blobfuse deb
39+
RUN mkdir /blobfuse-proxy/
40+
RUN curl -Lso /blobfuse-proxy/packages-microsoft-prod-18.04.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb
41+
RUN curl -Lso /blobfuse-proxy/packages-microsoft-prod-22.04.deb https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb
42+
FROM base
43+
44+
ARG ARCH
1845
ARG binary=./_output/${ARCH}/blobplugin
1946
COPY ${binary} /blobplugin
2047

21-
RUN mkdir /blobfuse-proxy/
48+
COPY --from=builder --chown=root:root /opt/microsoft/aznfs /opt/microsoft/aznfs
49+
COPY --from=builder --chown=root:root /sbin/mount.aznfs /sbin/mount.aznfs
50+
COPY --from=builder --chown=root:root /usr/sbin/aznfswatchdog /usr/sbin/aznfswatchdog
51+
COPY --from=builder --chown=root:root /usr/local/bin/azcopy /usr/local/bin/azcopy
52+
COPY --from=builder --chown=root:root /blobfuse-proxy /blobfuse-proxy
53+
54+
# packages that are only needed by aznfs: procps conntrack iptables bind9-host iproute2 bash netcat sysvinit-utils.
55+
RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && clean-install ca-certificates uuid-dev util-linux mount udev e2fsprogs nfs-common netbase procps conntrack iptables bind9-host iproute2 bash netcat-traditional sysvinit-utils kmod
2256

2357
COPY ./pkg/blobfuse-proxy/init.sh /blobfuse-proxy/
2458
COPY ./pkg/blobfuse-proxy/install-proxy.sh /blobfuse-proxy/
@@ -27,37 +61,18 @@ COPY ./pkg/blobfuse-proxy/blobfuse-proxy.service /blobfuse-proxy/
2761
COPY ./_output/${ARCH}/blobfuse-proxy /blobfuse-proxy/
2862

2963
RUN chmod +x /blobfuse-proxy/init.sh && \
30-
chmod +x /blobfuse-proxy/install-proxy-rhcos.sh && \
31-
chmod +x /blobfuse-proxy/install-proxy.sh && \
32-
chmod +x /blobfuse-proxy/blobfuse-proxy.service && \
33-
chmod +x /blobfuse-proxy/blobfuse-proxy
34-
35-
# packages that are only needed by aznfs: procps conntrack iptables bind9-host iproute2 bash netcat sysvinit-utils.
36-
RUN apt update && apt upgrade -y && apt-mark unhold libcap2 && clean-install ca-certificates uuid-dev util-linux mount udev wget e2fsprogs nfs-common netbase procps conntrack iptables bind9-host iproute2 bash netcat-traditional sysvinit-utils kmod
64+
chmod +x /blobfuse-proxy/install-proxy-rhcos.sh && \
65+
chmod +x /blobfuse-proxy/install-proxy.sh && \
66+
chmod +x /blobfuse-proxy/blobfuse-proxy.service && \
67+
chmod +x /blobfuse-proxy/blobfuse-proxy
3768

38-
# install aznfs
39-
ARG aznfsVer=2.0.7
4069
RUN if [ "$ARCH" = "amd64" ] ; then \
41-
wget -O aznfs.tar.gz https://github.com/Azure/AZNFS-mount/releases/download/${aznfsVer}/aznfs-${aznfsVer}-1.x86_64.tar.gz; \
42-
else \
43-
wget -O aznfs.tar.gz https://github.com/Azure/AZNFS-mount/releases/download/${aznfsVer}/aznfs-${aznfsVer}-1.arm64.tar.gz;fi
44-
RUN tar xvzf aznfs.tar.gz -C / --keep-directory-symlink && rm aznfs.tar.gz
70+
clean-install libcurl4-gnutls-dev \
71+
&& dpkg -i /blobfuse-proxy/packages-microsoft-prod-18.04.deb \
72+
&& rm /blobfuse-proxy/packages-microsoft-prod-18.04.deb \
73+
&& apt update \
74+
&& apt install -y blobfuse blobfuse2 fuse; fi
4575

46-
# install azcopy
47-
ARG azcopyURL=https://azcopyvnext.azureedge.net/releases/release-10.26.0-20240731/azcopy_linux_amd64_10.26.0.tar.gz
48-
RUN if [ "$ARCH" == "arm64" ] ; then \
49-
azcopyURL=https://azcopyvnext.azureedge.net/releases/release-10.26.0-20240731/azcopy_linux_arm64_10.26.0.tar.gz; fi
50-
RUN wget -O azcopy.tar.gz ${azcopyURL} && \
51-
tar xvzf azcopy.tar.gz -C . && rm azcopy.tar.gz && \
52-
mv ./azcopy_linux_$ARCH_*/azcopy /usr/local/bin/azcopy && \
53-
rm -rf ./azcopy_linux_$ARCH_*
54-
RUN chmod +x /usr/local/bin/azcopy
55-
56-
RUN if [ "$ARCH" = "amd64" ] ; then \
57-
clean-install libcurl4-gnutls-dev && \
58-
wget -O /blobfuse-proxy/packages-microsoft-prod-22.04.deb https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb && \
59-
wget -O /blobfuse-proxy/packages-microsoft-prod-18.04.deb https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb && \
60-
dpkg -i /blobfuse-proxy/packages-microsoft-prod-18.04.deb && apt update && apt install blobfuse blobfuse2 fuse -y && apt remove wget -y; fi
6176
LABEL maintainers="andyzhangx"
6277
LABEL description="Azure Blob Storage CSI driver"
6378

0 commit comments

Comments
 (0)