1
+ # Copyright 2018 The Kubernetes Authors.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ ARG BUILDPLATFORM
16
+
17
+ FROM --platform=$BUILDPLATFORM golang:1.17.2 as builder
18
+
19
+ ARG STAGINGVERSION
20
+ ARG TARGETPLATFORM
21
+
22
+ WORKDIR /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver
23
+ ADD . .
24
+ RUN GOARCH=$(echo $TARGETPLATFORM | cut -f2 -d '/') GCE_PD_CSI_STAGING_VERSION=$STAGINGVERSION make gce-pd-driver
25
+
26
+ # MAD HACKS: Build a version first so we can take the scsi_id bin and put it somewhere else in our real build.
27
+ FROM k8s.gcr.io/build-image/debian-base:buster-v1.9.0 as mad-hack
28
+ RUN clean-install udev
29
+
30
+ # Start from Kubernetes Debian base.
31
+ FROM k8s.gcr.io/build-image/debian-base:buster-v1.9.0 as debian
32
+ # Install necessary dependencies
33
+ RUN clean-install util-linux e2fsprogs mount ca-certificates udev xfsprogs
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.
37
+ COPY --from=builder /go/src/sigs.k8s.io/gcp-compute-persistent-disk-csi-driver/bin/gce-pd-csi-driver /gce-pd-csi-driver
38
+ COPY --from=mad-hack /lib/udev/scsi_id /lib/udev_containerized/scsi_id
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/blkidp
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