diff --git a/Dockerfile b/Dockerfile index ea7f6c4..2cd56a4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -23,13 +23,41 @@ ARG KUSTOMIZE_VERSION=3.8.10 #ARG KUSTOMIZE_VERSION=5.5.0 ADD https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize%2Fv${KUSTOMIZE_VERSION}/kustomize_v${KUSTOMIZE_VERSION}_linux_amd64.tar.gz /srv/kustomize_linux_amd64.tar.gz +FROM scratch AS skopeo-remote +ARG SKOPEO_VERSION=1.15.0 +ADD https://github.com/containers/skopeo/archive/refs/tags/v${SKOPEO_VERSION}.tar.gz /srv/skopeo.tar.gz + FROM debian:bookworm-20241223-slim AS host-base-tools RUN true && \ apt-get update && \ - apt-get install -y git && \ + apt-get install -y git libgpgme11 libsubid4 libdevmapper1.02.1 && \ adduser tool && \ getent passwd && \ + apt-get clean && \ + true + +FROM host-base-tools AS skopeo-compiled +COPY --from=skopeo-remote /srv/skopeo.tar.gz /srv/skopeo.tar.gz +RUN true && set -x && \ + echo "deb http://deb.debian.org/debian/ bookworm-backports main" > /etc/apt/sources.list.d/bookworm-backups.list && \ + apt-get update && \ + apt-get install -y \ + make libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config \ + golang-1.22-go golang-1.22 go-md2man \ + && \ + apt-get clean && \ + mkdir /srv/build && cd /srv/build && tar xzvf /srv/skopeo.tar.gz && \ + mv skopeo-* /srv/skopeo && \ + cd /srv/skopeo && \ + PATH=/usr/lib/go-1.22/bin:$PATH make && \ + cp bin/skopeo /usr/local/bin/skopeo && \ + cd /srv && \ + rm /srv/skopeo* -rf && \ + apt-get remove -y \ + make libgpgme-dev libassuan-dev libbtrfs-dev libdevmapper-dev pkg-config \ + golang-1.22-go golang-1.22 go-md2man \ + && \ true FROM host-base-tools as host-build-tools @@ -40,6 +68,9 @@ COPY --from=helmfile-remote /srv/helmfile_linux_amd64.tar.gz /srv/helmfile_linux COPY --from=kubectl-remote /srv/kubectl /usr/local/bin/kubectl COPY --from=kustomize-remote /srv/kustomize_linux_amd64.tar.gz /srv/kustomize_linux_amd64.tar.gz +# requires: libgpgme11 libsubid4 libdevmapper1.02.1 +COPY --from=skopeo-compiled /usr/local/bin/skopeo /usr/local/bin/skopeo + RUN true && set -x && \ chown tool:tool /srv/* && \ chmod +x /usr/local/bin/kubectl && \ @@ -67,6 +98,7 @@ RUN true && set -x && \ tar -C $HELM_PLUGINS -xf /srv/helm-git.tar.gz && \ helm version && helm plugin list && \ helmfile version && \ + skopeo -v && \ mkdir -p .config/kustomize/plugin && \ mkdir .ssh && chmod 700 .ssh && \ true