# Copyright (c) 2018-2019 Tigera, Inc. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

ARG UBI_IMAGE

FROM ${UBI_IMAGE} as ubi

ADD flexvol/docker/clean.sh /usr/local/bin/clean.sh
ADD flexvol/docker/flexvol.sh /usr/local/bin/flexvol.sh
RUN touch /in-the-container

RUN mkdir /licenses
COPY LICENSE /licenses

RUN microdnf update

SHELL ["/bin/bash", "-c"]
RUN  /usr/local/bin/clean.sh "/usr/local/bin/flexvol.sh" "/bin/cp" "/bin/chmod" "/bin/mv" "/bin/mount" "/bin/umount"

FROM scratch
SHELL ["/bin/sh", "-c"]

ARG GIT_VERSION=unknown

LABEL name="Calico FlexVolume driver installer" \
      vendor="Project Calico" \
      version=$GIT_VERSION \
      release="1" \
      summary="Calico FlexVolume driver installer to setup secure connections from Kubernetes pods to local daemons" \
      description="Calico FlexVolume driver installer to setup secure connections from Kubernetes pods to local daemons" \
      maintainer="Laurence Man <laurence@tigera.io>"

COPY --from=ubi /licenses /licenses
COPY --from=ubi /bin /bin
COPY --from=ubi /usr/bin /usr/bin
COPY --from=ubi /usr/local/bin/flexvol.sh /usr/local/bin/flexvol.sh

# copy only the required libs, identified by running 'ldd' on the '/usr/local/bin/flexvol' binary, as well as on the remaining binaries on '/bin' and '/usr/bin' that were left after running 'clean.sh'
COPY --from=ubi /lib64/ld-linux-x86-64.so.2 /lib64/ld-linux-x86-64.so.2
COPY --from=ubi /lib64/libacl.so.1 /lib64/libacl.so.1
COPY --from=ubi /lib64/libattr.so.1 /lib64/libattr.so.1
COPY --from=ubi /lib64/libcap.so.2 /lib64/libcap.so.2
COPY --from=ubi /lib64/libc.so.6 /lib64/libc.so.6
COPY --from=ubi /lib64/libdl.so.2 /lib64/libdl.so.2
COPY --from=ubi /lib64/libpcre2-8.so.0 /lib64/libpcre2-8.so.0
COPY --from=ubi /lib64/libpthread.so.0 /lib64/libpthread.so.0
COPY --from=ubi /lib64/librt.so.1 /lib64/librt.so.1
COPY --from=ubi /lib64/libselinux.so.1 /lib64/libselinux.so.1
COPY --from=ubi /lib64/libtinfo.so.6 /lib64/libtinfo.so.6

# Copy hostname configuration files from the UBI image so glibc hostname lookups work.
COPY --from=ubi /etc/host.conf /etc/host.conf
COPY --from=ubi /etc/nsswitch.conf /etc/nsswitch.conf

ARG BIN_DIR
ADD ${BIN_DIR}/flexvol-amd64 /usr/local/bin/flexvol

ENTRYPOINT ["/usr/local/bin/flexvol.sh"]
