feat: containerize the fork -- Dockerfile + Forgejo CI and build-push #1

Merged
rcsheets merged 3 commits from feat/image-build into main 2026-07-24 01:28:34 +00:00
Owner

Adds the image pipeline for the fork (main = upstream 3.7.5 + MR !23 race fix, see FORK.md):

  • Dockerfile: two-stage trixie-slim build (cmake/Release, prefix=/usr, CFGDIR=/etc/apt-cacher-ng, cache/log dirs matching the current deployment). Runs as root matching the mbentley image's effective behavior on our PVC; the zzzz_local.conf ConfigMap drop-in keeps working.
  • ci.yaml: PR compile + usage-output smoke test.
  • build-push.yaml: modeled on gllm's — buildah vfs/chroot, OpenBao creds via the tf-oss-push robot (secret/forgejo-runners/brooktrails/oss-harbor-push), conventional-commit semver + git tag, and a podman smoke test that polls /acng-report.html (the exact path the deployment probes hit). Pushes to the public oss/apt-cacher-ng so the deployment pulls anonymously — no pull-secret the broken cache could wedge on.

Deliberate: nothing in these workflows uses the cluster apt-cache proxy — this image IS the cache, so its fix must build while the cache is broken.

Needs before first green run:

  1. infra#213 (RunnerPool trusted-apt-cacher-ng)
  2. infra#214 applied (oss project + robot + the manual OpenBao policy additions)
  3. repo variable HARBOR_REGISTRY=harbor.brooktrails.org and repo secret FORGEJO_TOKEN

🤖 Generated with Claude Code

Adds the image pipeline for the fork (main = upstream 3.7.5 + MR !23 race fix, see FORK.md): - **Dockerfile**: two-stage trixie-slim build (cmake/Release, prefix=/usr, CFGDIR=/etc/apt-cacher-ng, cache/log dirs matching the current deployment). Runs as root matching the mbentley image's effective behavior on our PVC; the zzzz_local.conf ConfigMap drop-in keeps working. - **ci.yaml**: PR compile + usage-output smoke test. - **build-push.yaml**: modeled on gllm's — buildah vfs/chroot, OpenBao creds via the `tf-oss-push` robot (`secret/forgejo-runners/brooktrails/oss-harbor-push`), conventional-commit semver + git tag, and a podman smoke test that polls /acng-report.html (the exact path the deployment probes hit). Pushes to the public `oss/apt-cacher-ng` so the deployment pulls anonymously — no pull-secret the broken cache could wedge on. Deliberate: nothing in these workflows uses the cluster apt-cache proxy — this image IS the cache, so its fix must build while the cache is broken. Needs before first green run: 1. infra#213 (RunnerPool `trusted-apt-cacher-ng`) 2. infra#214 applied (oss project + robot + the manual OpenBao policy additions) 3. repo variable `HARBOR_REGISTRY=harbor.brooktrails.org` and repo secret `FORGEJO_TOKEN` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: containerize the fork -- Dockerfile + Forgejo CI and build-push
Some checks failed
ci / build (pull_request) Failing after 43s
97fa9e8e75
CI compiles + smoke-tests on PRs; build-push builds the image with buildah,
sanity-checks the report page (the deployment's probe path), and pushes
sha/semver/latest tags to Harbor. Neither workflow touches the cluster
apt-cache proxy: this image IS the cache, and its fix must build while the
cache is broken.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Author
Owner

Updated: image now targets the public oss/apt-cacher-ng (anonymous pull, no pull-secret for the deployment) and creds come from secret/forgejo-runners/brooktrails/oss-harbor-push (the tf-oss-push robot). Depends on infra#214 (oss project + robot) and its manual OpenBao policy steps, plus infra#213 (runner pool) and the HARBOR_REGISTRY/FORGEJO_TOKEN repo settings.

Updated: image now targets the public `oss/apt-cacher-ng` (anonymous pull, no pull-secret for the deployment) and creds come from `secret/forgejo-runners/brooktrails/oss-harbor-push` (the `tf-oss-push` robot). Depends on infra#214 (oss project + robot) and its manual OpenBao policy steps, plus infra#213 (runner pool) and the `HARBOR_REGISTRY`/`FORGEJO_TOKEN` repo settings.
chore: push to the public oss project instead of brooktrails
Some checks failed
ci / build (pull_request) Failing after 36s
fb7bbb83cd
oss/apt-cacher-ng pulls anonymously, so the apt-cache deployment never
depends on a pull-secret the broken cache could wedge on. Credentials come
from the tf-oss-push robot via OpenBao (infra tofu/harbor PR #214).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
fix: add missing build deps (libevent, c-ares, bz2, lzma); disable acngfs
All checks were successful
ci / build (pull_request) Successful in 51s
94e7a3683c
CI configure failed at cmake's FATAL_ERROR for libevent; c-ares is likewise
REQUIRED, and bz2/xz were silently disabled. Add all four -dev packages
(cross-checked against debian/sid Build-Depends) to the Dockerfile and CI.

ENABLE_TOOLS=off drops client/ + fs/ (acngfs) -- neither runs in the cache
container, and it removes the only libfuse dependency. Runtime libs for the
image are derived from ldd of the built binaries rather than hardcoded, so
trixie's t64 library names and libevent's sub-libraries stay in sync across
base-image bumps.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
rcsheets deleted branch feat/image-build 2026-07-24 01:28:34 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
brooktrails/apt-cacher-ng!1
No description provided.