diff --git a/package/linux/amd64/Dockerfile b/package/linux/amd64/Dockerfile index 37af11b..e0f410b 100644 --- a/package/linux/amd64/Dockerfile +++ b/package/linux/amd64/Dockerfile @@ -1,6 +1,11 @@ -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 IMAGE_VERSION=dev LABEL org.opencontainers.image.source="https://github.com/PastureStack/internal-dns" \ @@ -9,11 +14,14 @@ LABEL org.opencontainers.image.source="https://github.com/PastureStack/internal- org.opencontainers.image.version="${IMAGE_VERSION}" RUN set -eux; \ + 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 /usr/bin/pebble; \ - 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; \ + 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; \ apt-get install -y --no-install-recommends ca-certificates curl openssl tini; \ rm -rf /var/lib/apt/lists/*; \ diff --git a/package/windows/amd64/Dockerfile b/package/windows/amd64/Dockerfile index dee4eed..6cf86e0 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 internal-dns.exe C:\pasturestack\internal-dns.exe