diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 9db096b..c92e563 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,18 +1,26 @@ -FROM ubuntu:26.04 +# syntax=docker/dockerfile:1.7 +FROM ubuntu:26.04@sha256:2260313b31c8c011cd2eebe728008efac1b3982be73eb71348ea2648d2c0e09b ARG DAPPER_HOST_ARCH=amd64 ARG GO_VERSION=1.27.0 ARG GO_LINUX_AMD64_SHA256=675c26c449cbb18fc24b74650de1eabbae6e16f64326fd85a283fb3b58280685 -ARG UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu +ARG UBUNTU_SNAPSHOT=20260825T000000Z + +ADD --checksum=sha256:6077d27c6b6f8b23590cb01ff877ed8c804a67a5442cc32b5a33da10d2bd0e90 \ + https://snapshot.ubuntu.com/ubuntu/20260825T000000Z/pool/main/c/ca-certificates/ca-certificates_20260601~26.04.1_all.deb \ + /tmp/ca-certificates.deb ENV DEBIAN_FRONTEND=noninteractive ENV HOST_ARCH=${DAPPER_HOST_ARCH} ARCH=${DAPPER_HOST_ARCH} RUN set -eux; \ - find /etc/apt -type f \( -name '*.list' -o -name '*.sources' \) -exec sed -i \ - -e "s|http://security.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g" \ - -e "s|http://archive.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g" {} +; \ - printf 'Acquire::Retries "5";\nAcquire::http::Timeout "30";\nAcquire::https::Timeout "30";\nAcquire::http::Pipeline-Depth "0";\n' > /etc/apt/apt.conf.d/80pasturestack-retries; \ + mkdir -p /tmp/ca-bootstrap /etc/ssl/certs; \ + dpkg-deb --extract /tmp/ca-certificates.deb /tmp/ca-bootstrap; \ + find /tmp/ca-bootstrap/usr/share/ca-certificates -type f -name '*.crt' | LC_ALL=C sort | while IFS= read -r certificate; do sed -e '$a\' "${certificate}"; done > /etc/ssl/certs/ca-certificates.crt; \ + rm -rf /tmp/ca-bootstrap /tmp/ca-certificates.deb; \ + rm -f /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources; \ + printf 'Types: deb\nURIs: https://snapshot.ubuntu.com/ubuntu/%s\nSuites: resolute resolute-updates resolute-backports resolute-security\nComponents: main universe restricted multiverse\nSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\nSnapshot: no\n' "${UBUNTU_SNAPSHOT}" > /etc/apt/sources.list.d/pasturestack-snapshot.sources; \ + printf 'Acquire::Retries "5";\nAcquire::http::Timeout "30";\nAcquire::https::Timeout "30";\nAcquire::http::Pipeline-Depth "0";\nAcquire::https::CaInfo "/etc/ssl/certs/ca-certificates.crt";\nAcquire::https::Verify-Peer "true";\nAcquire::https::Verify-Host "true";\nAcquire::AllowInsecureRepositories "false";\nAPT::Get::AllowUnauthenticated "false";\n' > /etc/apt/apt.conf.d/80pasturestack-snapshot; \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ bash ca-certificates curl file gcc git libc6-dev make tar xz-utils && \ diff --git a/package/Dockerfile b/package/Dockerfile index df22c70..5a2a62d 100644 --- a/package/Dockerfile +++ b/package/Dockerfile @@ -1,16 +1,24 @@ -FROM ubuntu:26.04 +# syntax=docker/dockerfile:1.7 +FROM ubuntu:26.04@sha256:2260313b31c8c011cd2eebe728008efac1b3982be73eb71348ea2648d2c0e09b -ARG UBUNTU_MIRROR=http://archive.ubuntu.com/ubuntu +ARG UBUNTU_SNAPSHOT=20260825T000000Z + +ADD --checksum=sha256:6077d27c6b6f8b23590cb01ff877ed8c804a67a5442cc32b5a33da10d2bd0e90 \ + https://snapshot.ubuntu.com/ubuntu/20260825T000000Z/pool/main/c/ca-certificates/ca-certificates_20260601~26.04.1_all.deb \ + /tmp/ca-certificates.deb ARG PASTURESTACK_IMAGE_VERSION=dev ARG PASTURESTACK_IMAGE_REVISION=unknown ARG PASTURESTACK_IMAGE_CREATED=1970-01-01T00:00:00Z ENV DEBIAN_FRONTEND=noninteractive RUN set -eux; \ - find /etc/apt -type f \( -name '*.list' -o -name '*.sources' \) -exec sed -i \ - -e "s|http://security.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g" \ - -e "s|http://archive.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g" {} +; \ - printf 'Acquire::Retries "5";\nAcquire::http::Timeout "30";\nAcquire::https::Timeout "30";\nAcquire::http::Pipeline-Depth "0";\n' > /etc/apt/apt.conf.d/80pasturestack-retries; \ + mkdir -p /tmp/ca-bootstrap /etc/ssl/certs; \ + dpkg-deb --extract /tmp/ca-certificates.deb /tmp/ca-bootstrap; \ + find /tmp/ca-bootstrap/usr/share/ca-certificates -type f -name '*.crt' | LC_ALL=C sort | while IFS= read -r certificate; do sed -e '$a\' "${certificate}"; done > /etc/ssl/certs/ca-certificates.crt; \ + rm -rf /tmp/ca-bootstrap /tmp/ca-certificates.deb; \ + rm -f /etc/apt/sources.list /etc/apt/sources.list.d/*.list /etc/apt/sources.list.d/*.sources; \ + printf 'Types: deb\nURIs: https://snapshot.ubuntu.com/ubuntu/%s\nSuites: resolute resolute-updates resolute-backports resolute-security\nComponents: main universe restricted multiverse\nSigned-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg\nSnapshot: no\n' "${UBUNTU_SNAPSHOT}" > /etc/apt/sources.list.d/pasturestack-snapshot.sources; \ + printf 'Acquire::Retries "5";\nAcquire::http::Timeout "30";\nAcquire::https::Timeout "30";\nAcquire::http::Pipeline-Depth "0";\nAcquire::https::CaInfo "/etc/ssl/certs/ca-certificates.crt";\nAcquire::https::Verify-Peer "true";\nAcquire::https::Verify-Host "true";\nAcquire::AllowInsecureRepositories "false";\nAPT::Get::AllowUnauthenticated "false";\n' > /etc/apt/apt.conf.d/80pasturestack-snapshot; \ apt-get update && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ bash ca-certificates iproute2 iptables libcap2-bin util-linux && \ diff --git a/package/windows/amd64/Dockerfile b/package/windows/amd64/Dockerfile index 42a3688..42d0e17 100644 --- a/package/windows/amd64/Dockerfile +++ b/package/windows/amd64/Dockerfile @@ -1,5 +1,5 @@ # escape=` -FROM mcr.microsoft.com/windows/nanoserver:ltsc2022 +FROM mcr.microsoft.com/windows/nanoserver:ltsc2022@sha256:e4ce8c20390c3785c3cbeef15c579d186b3599d37525c596590cf4508e38d3ff WORKDIR C:\pasturestack COPY metadata-service.exe C:\pasturestack\metadata-service.exe