From b39d4263afd0b9602923ed925a3df9ae347bdd9c Mon Sep 17 00:00:00 2001 From: chen21019 Date: Wed, 26 Aug 2026 19:24:39 +0800 Subject: [PATCH] build: pin Ubuntu snapshot sources --- Dockerfile.dapper | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/Dockerfile.dapper b/Dockerfile.dapper index 401132d..de2f540 100644 --- a/Dockerfile.dapper +++ b/Dockerfile.dapper @@ -1,9 +1,14 @@ -FROM ubuntu:26.04 +# syntax=docker/dockerfile:1.7 +FROM ubuntu:26.04@sha256:2260313b31c8c011cd2eebe728008efac1b3982be73eb71348ea2648d2c0e09b ENV DEBIAN_FRONTEND=noninteractive ARG GO_VERSION=1.27.0 ARG GO_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 GOPATH=/go ENV GOROOT=/usr/local/go ENV PATH=/usr/local/go/bin:/go/bin:${PATH} @@ -15,9 +20,13 @@ ENV XDG_CONFIG_HOME=/tmp/go-config ENV GIT_CONFIG_GLOBAL=/tmp/gitconfig RUN set -eux; \ - if [ -f /etc/apt/sources.list.d/ubuntu.sources ]; then \ - sed -i "s|http://archive.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g; s|http://security.ubuntu.com/ubuntu|${UBUNTU_MIRROR}|g" /etc/apt/sources.list.d/ubuntu.sources; \ - fi; \ + 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::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 -o Acquire::Retries=5 -o Acquire::http::Timeout=30 update && \ apt-get install -y --no-install-recommends \ ca-certificates \ @@ -41,7 +50,7 @@ RUN curl -fsSL -o /tmp/go.tgz "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar ENV DAPPER_SOURCE=/go/src/github.com/PastureStack/host-provisioner ENV DAPPER_OUTPUT="bin dist" ENV DAPPER_DOCKER_SOCKET=false -ENV DAPPER_ENV="TAG REPO DOCKER_BUILD_NETWORK UBUNTU_MIRROR" +ENV DAPPER_ENV="TAG REPO DOCKER_BUILD_NETWORK" WORKDIR ${DAPPER_SOURCE} ENTRYPOINT ["./scripts/entry"] CMD ["ci"]