@@ -21,11 +21,25 @@ WORKDIR /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver
21
21
ADD . .
22
22
RUN GOARCH=$(echo $TARGETPLATFORM | cut -f2 -d '/' ) GCE_PD_CSI_STAGING_VERSION=$STAGINGVERSION make gce-pd-driver
23
23
24
- # Start from Kubernetes Debian base.
25
- FROM gke.gcr.io/debian-base:bookworm-v1.0.2-gke.1 as debian
26
- # Install necessary dependencies
27
- # google_nvme_id script depends on the following packages: nvme-cli, xxd, bash
28
- RUN clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs nvme-cli xxd bash
24
+ # # Start from Kubernetes Debian base.
25
+ # FROM gke.gcr.io/debian-base:bookworm-v1.0.2-gke.1 as debian
26
+ # # Install necessary dependencies
27
+ # # google_nvme_id script depends on the following packages: nvme-cli, xxd, bash
28
+ # RUN clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs nvme-cli xxd bash
29
+
30
+ FROM gke.gcr.io/debian-base:bookworm-v1.0.2-gke.2@sha256:1e4d9fa20ba4b3372f2c2f8676823f25c63e1ba7c09ed17933a19b054b97b795 AS debian
31
+ ARG PKGS="util-linux e2fsprogs mount ca-certificates udev xfsprogs nvme-cli xxd bash"
32
+ RUN cd /tmp \
33
+ && apt-get update \
34
+ && apt-get download $(apt-cache depends --recurse -i $PKGS | grep '^\w ' ) \
35
+ && mkdir -p /dpkg/var/lib/dpkg/status.d/ \
36
+ && for deb in *.deb; do \
37
+ package_name=$(dpkg-deb -I ${deb} | awk '/^ Package: .*$/ {print $2}' ); \
38
+ dpkg --ctrl-tarfile $deb | tar -Oxf - ./control > /dpkg/var/lib/dpkg/status.d/${package_name}; \
39
+ dpkg --extract $deb /dpkg || exit 10; \
40
+ done \
41
+ && find /dpkg/ -type d -empty -delete \
42
+ && rm -r /dpkg/usr/share/doc/
29
43
30
44
# Since we're leveraging apt to pull in dependencies, we use `gcr.io/distroless/base` because it includes glibc.
31
45
FROM gcr.io/distroless/base-debian11 as distroless-base
@@ -40,66 +54,71 @@ ENV LIB_DIR_PREFIX aarch64
40
54
41
55
FROM distroless-$TARGETARCH as output-image
42
56
43
- # Copy necessary dependencies into distroless base.
44
- COPY --from=builder /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin/gce-pd-csi-driver /gce-pd-csi-driver
45
- COPY --from=debian /etc/mke2fs.conf /etc/mke2fs.conf
46
- COPY --from=debian /lib/udev/scsi_id /lib/udev_containerized/scsi_id
47
- COPY --from=debian /bin/mount /bin/mount
48
- COPY --from=debian /bin/umount /bin/umount
49
- COPY --from=debian /sbin/blkid /sbin/blkid
50
- COPY --from=debian /sbin/blockdev /sbin/blockdev
51
- COPY --from=debian /sbin/dumpe2fs /sbin/dumpe2fs
52
- COPY --from=debian /sbin/e* /sbin/
53
- COPY --from=debian /sbin/e2fsck /sbin/e2fsck
54
- COPY --from=debian /sbin/fsck /sbin/fsck
55
- COPY --from=debian /sbin/fsck* /sbin/
56
- COPY --from=debian /sbin/fsck.xfs /sbin/fsck.xfs
57
- COPY --from=debian /sbin/mke2fs /sbin/mke2fs
58
- COPY --from=debian /sbin/mkfs* /sbin/
59
- COPY --from=debian /sbin/resize2fs /sbin/resize2fs
60
- COPY --from=debian /sbin/xfs_repair /sbin/xfs_repair
61
- COPY --from=debian /usr/include/xfs /usr/include/xfs
62
- COPY --from=debian /usr/lib/xfsprogs/xfs* /usr/lib/xfsprogs/
63
- COPY --from=debian /usr/sbin/xfs* /usr/sbin/
64
- # Add dependencies for /lib/udev_containerized/google_nvme_id script
65
- COPY --from=debian /usr/sbin/nvme /usr/sbin/nvme
66
- COPY --from=debian /usr/bin/xxd /usr/bin/xxd
67
- COPY --from=debian /bin/bash /bin/bash
68
- COPY --from=debian /bin/date /bin/date
69
- COPY --from=debian /bin/grep /bin/grep
70
- COPY --from=debian /bin/sed /bin/sed
71
- COPY --from=debian /bin/ln /bin/ln
72
- COPY --from=debian /bin/udevadm /bin/udevadm
73
-
74
- # Copy shared libraries into distroless base.
75
- COPY --from=debian /lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre.so.3 \
76
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libselinux.so.1 \
77
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libtinfo.so.6 \
78
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libe2p.so.2 \
79
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libcom_err.so.2 \
80
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libdevmapper.so.1.02.1 \
81
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libext2fs.so.2 \
82
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libgcc_s.so.1 \
83
- /lib/${LIB_DIR_PREFIX}-linux-gnu/liblzma.so.5 \
84
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libreadline.so.8 \
85
- /lib/${LIB_DIR_PREFIX}-linux-gnu/libz.so.1 /lib/${LIB_DIR_PREFIX}-linux-gnu/
86
-
87
- COPY --from=debian /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libblkid.so.1 \
88
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libbsd.so.0 \
89
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libinih.so.1 \
90
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libmount.so.1 \
91
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libudev.so.1 \
92
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libuuid.so.1 \
93
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libacl.so.1 \
94
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libattr.so.1 \
95
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libedit.so.2 \
96
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicudata.so.67 \
97
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicui18n.so.67 \
98
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicuuc.so.67 \
99
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libkmod.so.2 \
100
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libmd.so.0 \
101
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre2-8.so.0 \
102
- /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libstdc++.so.6 /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/
57
+
58
+ # Update the bas image for debian
59
+ COPY --from=debian ["/dpkg/" , "/" ]
60
+
61
+
62
+ # # Copy necessary dependencies into distroless base.
63
+ # COPY --from=builder /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin/gce-pd-csi-driver /gce-pd-csi-driver
64
+ # COPY --from=debian /etc/mke2fs.conf /etc/mke2fs.conf
65
+ # COPY --from=debian /lib/udev/scsi_id /lib/udev_containerized/scsi_id
66
+ # COPY --from=debian /bin/mount /bin/mount
67
+ # COPY --from=debian /bin/umount /bin/umount
68
+ # COPY --from=debian /sbin/blkid /sbin/blkid
69
+ # COPY --from=debian /sbin/blockdev /sbin/blockdev
70
+ # COPY --from=debian /sbin/dumpe2fs /sbin/dumpe2fs
71
+ # COPY --from=debian /sbin/e* /sbin/
72
+ # COPY --from=debian /sbin/e2fsck /sbin/e2fsck
73
+ # COPY --from=debian /sbin/fsck /sbin/fsck
74
+ # COPY --from=debian /sbin/fsck* /sbin/
75
+ # COPY --from=debian /sbin/fsck.xfs /sbin/fsck.xfs
76
+ # COPY --from=debian /sbin/mke2fs /sbin/mke2fs
77
+ # COPY --from=debian /sbin/mkfs* /sbin/
78
+ # COPY --from=debian /sbin/resize2fs /sbin/resize2fs
79
+ # COPY --from=debian /sbin/xfs_repair /sbin/xfs_repair
80
+ # COPY --from=debian /usr/include/xfs /usr/include/xfs
81
+ # COPY --from=debian /usr/lib/xfsprogs/xfs* /usr/lib/xfsprogs/
82
+ # COPY --from=debian /usr/sbin/xfs* /usr/sbin/
83
+ # # Add dependencies for /lib/udev_containerized/google_nvme_id script
84
+ # COPY --from=debian /usr/sbin/nvme /usr/sbin/nvme
85
+ # COPY --from=debian /usr/bin/xxd /usr/bin/xxd
86
+ # COPY --from=debian /bin/bash /bin/bash
87
+ # COPY --from=debian /bin/date /bin/date
88
+ # COPY --from=debian /bin/grep /bin/grep
89
+ # COPY --from=debian /bin/sed /bin/sed
90
+ # COPY --from=debian /bin/ln /bin/ln
91
+ # COPY --from=debian /bin/udevadm /bin/udevadm
92
+
93
+ # # Copy shared libraries into distroless base.
94
+ # COPY --from=debian /lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre.so.3 \
95
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libselinux.so.1 \
96
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libtinfo.so.6 \
97
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libe2p.so.2 \
98
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libcom_err.so.2 \
99
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libdevmapper.so.1.02.1 \
100
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libext2fs.so.2 \
101
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libgcc_s.so.1 \
102
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/liblzma.so.5 \
103
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libreadline.so.8 \
104
+ # /lib/${LIB_DIR_PREFIX}-linux-gnu/libz.so.1 /lib/${LIB_DIR_PREFIX}-linux-gnu/
105
+
106
+ # COPY --from=debian /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libblkid.so.1 \
107
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libbsd.so.0 \
108
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libinih.so.1 \
109
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libmount.so.1 \
110
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libudev.so.1 \
111
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libuuid.so.1 \
112
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libacl.so.1 \
113
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libattr.so.1 \
114
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libedit.so.2 \
115
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicudata.so.67 \
116
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicui18n.so.67 \
117
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libicuuc.so.67 \
118
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libkmod.so.2 \
119
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libmd.so.0 \
120
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libpcre2-8.so.0 \
121
+ # /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/libstdc++.so.6 /usr/lib/${LIB_DIR_PREFIX}-linux-gnu/
103
122
104
123
# Copy NVME support required script and rules into distroless base.
105
124
COPY deploy/kubernetes/udev/google_nvme_id /lib/udev_containerized/google_nvme_id
0 commit comments