12
12
# See the License for the specific language governing permissions and
13
13
# limitations under the License.
14
14
15
-
16
15
ARG BUILDPLATFORM
17
16
18
17
FROM --platform=$BUILDPLATFORM golang:1.17.2 as builder
@@ -24,30 +23,57 @@ WORKDIR /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver
24
23
ADD . .
25
24
RUN GOARCH=$(echo $TARGETPLATFORM | cut -f2 -d '/' ) GCE_PD_CSI_STAGING_VERSION=$STAGINGVERSION make gce-pd-driver
26
25
27
- # MAD HACKS: Build a version first so we can take the scsi_id bin and put it somewhere else in our real build
26
+ # MAD HACKS: Build a version first so we can take the scsi_id bin and put it somewhere else in our real build.
28
27
FROM k8s.gcr.io/build-image/debian-base:buster-v1.9.0 as mad-hack
29
- RUN clean-install udev
28
+ RUN clean-install udev
30
29
31
- # Start from Kubernetes Debian base
30
+ # Start from Kubernetes Debian base.
32
31
FROM k8s.gcr.io/build-image/debian-base:buster-v1.9.0 as debian
33
- COPY --from=builder /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin/gce-pd-csi-driver /gce-pd-csi-driver
34
-
35
-
36
32
# Install necessary dependencies
37
33
RUN clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs
38
-
39
- FROM gcr.io/distroless/base
34
+ # Since we're leveraging apt to pull in dependencies, we use `gcr.io/distroless/base` because it includes glibc.
35
+ FROM gcr.io/distroless/base-debian11
36
+ # Copy necessary dependencies into distroless base.
40
37
COPY --from=builder /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin/gce-pd-csi-driver /gce-pd-csi-driver
41
38
COPY --from=mad-hack /lib/udev/scsi_id /lib/udev_containerized/scsi_id
42
- # COPY --from=debian /lib/xfsprogs/ /lib/xfsprogs_containerized/
43
- # COPY --from=debian /lib/util-linux/ /lib/util-linux_containerized/
44
-
45
-
46
-
47
- ENTRYPOINT ["/gce-pd-csi-driver" ]
48
-
49
- # Since you're leveraging apt to pull in dependencies, you'd want to use `gcr.io/distroless/base` as the ultimate base because it includes glibc
50
-
51
-
52
- # COPY --from=builder /lib/x86_64-linux-gnu/libpthread.so.0 /lib/x86_64-linux-gnu/]
53
- # RUN ["/busybox/sh", "-c", "clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs"]
39
+ COPY --from=debian /bin/umount /bin/umount
40
+ COPY --from=debian /bin/mount /bin/mount
41
+ COPY --from=debian /sbin/resize2fs /sbin/resize2fs
42
+ COPY --from=debian /sbin/blockdev /sbin/blockdev
43
+ COPY --from=debian /sbin/e* /sbin/
44
+ COPY --from=debian /sbin/mke2fs /sbin/mke2fs
45
+ COPY --from=debian /etc/mke2fs.conf /etc/mke2fs.conf
46
+ COPY --from=debian /sbin/dumpe2fs /sbin/dumpe2fs
47
+ COPY --from=debian /sbin/mkfs* /sbin/
48
+ COPY --from=debian /sbin/fsck /sbin/fsck
49
+ COPY --from=debian /sbin/fsck* /sbin/
50
+ COPY --from=debian /sbin/fsck.xfs /sbin/fsck.xfs
51
+ COPY --from=debian /sbin/e2fsck /sbin/e2fsck
52
+ COPY --from=debian /sbin/xfs_repair /sbin/xfs_repair
53
+ COPY --from=debian /usr/sbin/xfs* /usr/sbin/
54
+ COPY --from=debian /usr/include/xfs /usr/include/xfs
55
+ COPY --from=debian /usr/lib/xfsprogs/xfs* /usr/lib/xfsprogs/
56
+ COPY --from=debian /usr/include/xfs /usr/include/xfs
57
+ COPY --from=debian /sbin/blkid /sbin/blkid
58
+
59
+ # Copy x86 shared libraries into distroless base.
60
+ COPY --from=debian /lib/x86_64-linux-gnu/libselinux.so.1 /lib/x86_64-linux-gnu/libselinux.so.1
61
+ COPY --from=debian /lib/x86_64-linux-gnu/libblkid.so.1 /lib/x86_64-linux-gnu/libblkid.so.1
62
+ COPY --from=debian /lib/x86_64-linux-gnu/libuuid.so.1.3.0 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
63
+ COPY --from=debian /lib/x86_64-linux-gnu/libuuid.so.1 /lib/x86_64-linux-gnu/libuuid.so.1
64
+ COPY --from=debian /lib/x86_64-linux-gnu/libext2fs.so.2.4 /lib/x86_64-linux-gnu/libext2fs.so.2.4
65
+ COPY --from=debian /lib/x86_64-linux-gnu/libext2fs.so.2 /lib/x86_64-linux-gnu/libext2fs.so.2
66
+ COPY --from=debian /lib/x86_64-linux-gnu/libcom_err.so.2 /lib/x86_64-linux-gnu/libcom_err.so.2
67
+ COPY --from=debian /lib/x86_64-linux-gnu/libcom_err.so.2.1 /lib/x86_64-linux-gnu/libcom_err.so.2.1
68
+ COPY --from=debian /lib/x86_64-linux-gnu/libreadline.so.5 /lib/x86_64-linux-gnu/libreadline.so.5
69
+ COPY --from=debian /lib/x86_64-linux-gnu/libreadline.so.5.2 /lib/x86_64-linux-gnu/libreadline.so.5.2
70
+ COPY --from=debian /lib/x86_64-linux-gnu/libpcre.so.3 /lib/x86_64-linux-gnu/libpcre.so.3
71
+ COPY --from=debian /lib/x86_64-linux-gnu/libpcre.so.3.13.3 /lib/x86_64-linux-gnu/libpcre.so.3.13.3
72
+ COPY --from=debian /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.6
73
+ COPY --from=debian /lib/x86_64-linux-gnu/libtinfo.so.6.1 /lib/x86_64-linux-gnu/libtinfo.so.6.1
74
+ COPY --from=debian /lib/x86_64-linux-gnu/libe2p.so.2 /lib/x86_64-linux-gnu/libe2p.so.2
75
+ COPY --from=debian /lib/x86_64-linux-gnu/libe2p.so.2.3 /lib/x86_64-linux-gnu/libe2p.so.2.3
76
+ COPY --from=debian /lib/x86_64-linux-gnu/libmount.so.1.1.0 /lib/x86_64-linux-gnu/libmount.so.1.1.0
77
+ COPY --from=debian /lib/x86_64-linux-gnu/libmount.so.1 /lib/x86_64-linux-gnu/libmount.so.1
78
+
79
+ ENTRYPOINT ["/gce-pd-csi-driver" ]
0 commit comments