mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2026-11-06 10:59:59 +00:00
The ubuntu CI image build (job 103277644636) hung on Canonical's archive: apt fetched 26 MB at 417 kB/s, then 61.6 kB in 29 s, then sat on the package download until the job was cancelled after 23 minutes, while download.docker.com delivered 42.8 MB in under a second on the same runner. Locally archive.ubuntu.com and security.ubuntu.com took 20-26 s to the first byte against 2 s for a university mirror. INFINITO_APT_UBUNTU_MIRRORS in default.env is now the one list of Ubuntu mirrors, in failover order: de.archive.ubuntu.com, ftp.fau.de, ftp.halifax.rwth-aachen.de, archive.ubuntu.com. - Image builds: the Dockerfile sources the list alongside the install scripts and runs scripts/install/apt-mirrors.sh first. In an image with ubuntu.sources it points both stanzas at apt's mirror+file method, priorities in list order, and sets Acquire::http::Timeout to 10 s, so apt moves on from a mirror that fails or goes silent; other distros are untouched. In ubuntu:latest apt-get update took 8 s against 110 s on the stock sources, a dead first mirror was left behind within 25 s against 62 s on apt's defaults, and the swarm node packages (80 debs) came in 17 s. The Dockerfile's own RUN lines ran clean on ubuntu, debian, fedora and arch. - Package cache: package.sh proxies the first entry as the primary Ubuntu repos and the second as their fallback. Nexus revalidates metadata on every request here (metadataMaxAge 0), which costs a full download from a mirror without an ETag; both de.archive and ftp.fau.de send one, and the 15 MB universe index now comes back from the cache in 0.02 s. - tests/external/repository/test_apt_ubuntu_mirrors.py keeps the list honest: the first mirror must answer InRelease within 5 s (median of three) or the test names a faster later one, no mirror's -updates may lag the freshest by more than 24 h, and every entry must be the primary archive, a Canonical country alias or an enabled official mirror in Launchpad's registry. It caught the first draft of the list: mirrors.edge.kernel.org is not an official Ubuntu mirror. After pulling, an existing checkout needs `make dotenv-force`: plain `make dotenv` re-reads the old .env through BASH_ENV and keeps its values. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Package-Cache Frontend (TLS-terminating reverse proxy) 🔐
TLS-terminating reverse proxy in front of the Sonatype Nexus 3 OSS package-cache service. Owns the real upstream package-manager hostnames via DNS-hijack so clients reach the cache transparently.
For services, activation, coverage, and operations of the local cache stack, see cache.md.
Files 📄
- upstreams.conf: nginx server-blocks. HTTPS (port 443) per hostname for runner-side traffic, HTTP (port 80) for inner-
dockerdDockerfile builds. Bind-mounted at/etc/nginx/conf.d/upstreams.conf.