Dockerfile.ubi 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. FROM registry.access.redhat.com/ubi9/ubi@sha256:6ed9f6f637fe731d93ec60c065dbced79273f1e0b5f512951f2c0b0baedb16ad AS minimal-ubi
  2. # Add metadata
  3. LABEL maintainer="cncf-externalsecretsop-maintainers@lists.cncf.io" \
  4. description="External Secrets Operator is a Kubernetes operator that integrates external secret management systems"
  5. ARG TARGETOS
  6. ARG TARGETARCH
  7. RUN dnf update -y --allowerasing
  8. # prep target rootfs for scratch container
  9. WORKDIR /
  10. RUN mkdir /image && \
  11. ln -s usr/bin /image/bin && \
  12. ln -s usr/sbin /image/sbin && \
  13. ln -s usr/lib64 /image/lib64 && \
  14. ln -s usr/lib /image/lib && \
  15. mkdir -p /image/{usr/bin,usr/lib64,usr/lib,root,home,proc,etc,sys,var,dev}
  16. # Install required packages directly into /image root - more robust under QEMU emulation
  17. RUN rpm --root /image --initdb \
  18. && dnf install -y --installroot=/image --releasever=9 --setopt=install_weak_deps=false --nodocs \
  19. glibc tzdata ca-certificates \
  20. && dnf clean all --installroot=/image \
  21. && rm -rf /image/var/cache/dnf /image/var/log/*
  22. FROM scratch
  23. # Copy all required files + rpm database so the image is scannable
  24. COPY --from=minimal-ubi /image/ /
  25. USER 65534
  26. ARG TARGETOS
  27. ARG TARGETARCH
  28. COPY bin/external-secrets-${TARGETOS}-${TARGETARCH} /bin/external-secrets
  29. ENTRYPOINT ["/bin/external-secrets"]