12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
- FROM registry.k8s.io/build-image/debian-base:bookworm-v1.0.3
16
-
17
15
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
18
45
ARG binary=./_output/${ARCH}/blobplugin
19
46
COPY ${binary} /blobplugin
20
47
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
22
56
23
57
COPY ./pkg/blobfuse-proxy/init.sh /blobfuse-proxy/
24
58
COPY ./pkg/blobfuse-proxy/install-proxy.sh /blobfuse-proxy/
@@ -27,37 +61,18 @@ COPY ./pkg/blobfuse-proxy/blobfuse-proxy.service /blobfuse-proxy/
27
61
COPY ./_output/${ARCH}/blobfuse-proxy /blobfuse-proxy/
28
62
29
63
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
37
68
38
- # install aznfs
39
- ARG aznfsVer=2.0.7
40
69
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
45
75
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
61
76
LABEL maintainers="andyzhangx"
62
77
LABEL description="Azure Blob Storage CSI driver"
63
78
0 commit comments