This is a soft fork of alpinelinux/docker-alpine. We track upstream HEAD and publish a HEAD-tracked image to GHCR with any open intarweb→upstream PRs cherry-picked on top.
All forks we manage with the sync-upstream + from-source-build pattern live under the
intarwebGitHub org. See theghcr-fork-mirrorskill for the canonical recipe.
| Branch | Purpose | Source of truth |
|---|---|---|
master |
Upstream-clean tracking + ops overlay (canonical workflows + FORK_INFO.md) | upstream + us |
intarweb-dev |
Deploy track — master + cherry-pick of every open intarweb→upstream PR. Drives :latest. |
us |
feat/*, fix/* |
Individual patch branches we PR upstream | us |
| Property | Value |
|---|---|
| Upstream | alpinelinux/docker-alpine |
| Upstream branch tracked | master |
| Sync cadence | Hourly (gated by vars.SYNC_CADENCE_HOURS) + workflow_dispatch + fold-on-push re-trigger on PR-branch push |
| Sync mechanism | Hard-reset master to upstream/master, re-apply ops overlay, regen intarweb-dev by cherry-picking every open intarweb→upstream PR |
| Sync workflow | .github/workflows/sync-upstream.yml |
| Property | Value |
|---|---|
| Image | ghcr.io/intarweb/alpine |
:latest source |
Build-from-source on intarweb-dev (gated by vars.IS_SOURCE_BUILT == 'true') |
:sha-<short> |
Every build |
Tagged releases (v*, etc.) |
Mirror upstream's released tags via fork-publish.yml |
| Build workflow | .github/workflows/build-from-source.yml |
| Smoke gate | Fail-closed on cherry-pick conflict — prior :latest keeps serving (honest-fact #65). |
No open intarweb→upstream PRs — intarweb-dev matches upstream/master exactly.
# docker-compose.yml
services:
alpine:
image: ghcr.io/intarweb/alpine:latestPin to a specific build for reproducibility:
image: ghcr.io/intarweb/alpine:sha-<short>Manually re-sync onto upstream:
gh workflow run "Sync from upstream + auto-regen intarweb-dev" --repo intarweb/docker-alpineForce a fresh build of :latest without an upstream change:
gh workflow run "Build from source → GHCR" --repo intarweb/docker-alpine --ref intarweb-devAdd a new patch to intarweb-dev:
git checkout -b feat/my-thing upstream/master
# ...do work...
git push origin feat/my-thing
gh pr create --repo alpinelinux/docker-alpine --base master --head intarweb:feat/my-thing
# Next sync-upstream tick auto-cherry-picks the new PR onto intarweb-dev.