chore: redesign Dockerfile and CI workflow from athena-archive #28

Merged
gravityfargo merged 1 commit from chore/redesign-dockerfile-ci into main 2026-05-21 05:57:16 +00:00
Owner

Summary

Reworks the Dockerfile and .forgejo/workflows/ci.yml on the athena-archive templates.

Dockerfile

  • Shared base stage carries WORKDIR, NEXT_TELEMETRY_DISABLED, and COREPACK_ENABLE_DOWNLOAD_PROMPT
  • Drops tini and libc6-compat — Next.js handles SIGTERM directly (docker stop returns in ~0.1s), wget is already in BusyBox
  • COPY . . in the builder (relies on .dockerignore); no build args (no runtime env config)
  • CMD ["node", "server.js"] runs directly, no ENTRYPOINT

ci.yml

  • Adds a push: [main] trigger so cache entries are written under main's ref — PR-branch caches die on squash-merge, leaving PR builds cold
  • Widens paths-ignore (.forgejo/issue_template/**, pull-request template)
  • Bumps the CI image to sha-76bc1b1

package.json

  • Pins packageManager to pnpm@10.33.4. The athena Dockerfile template's corepack enable pnpm is reproducible only because athena pins this; without it corepack pulls its latest pnpm, which now rejects <24h-old transitive deps. The pin also matches the CI image's pnpm.

Test plan

  • pnpm run lint / format:check / build pass locally
  • pnpm install --frozen-lockfile passes inside the athena-archive-ci:sha-76bc1b1 image
  • docker build succeeds; image serves HTTP 200, healthcheck exits 0, graceful SIGTERM shutdown
  • CI green on this PR
## Summary Reworks the `Dockerfile` and `.forgejo/workflows/ci.yml` on the athena-archive templates. **Dockerfile** - Shared `base` stage carries `WORKDIR`, `NEXT_TELEMETRY_DISABLED`, and `COREPACK_ENABLE_DOWNLOAD_PROMPT` - Drops `tini` and `libc6-compat` — Next.js handles `SIGTERM` directly (`docker stop` returns in ~0.1s), `wget` is already in BusyBox - `COPY . .` in the builder (relies on `.dockerignore`); no build args (no runtime env config) - `CMD ["node", "server.js"]` runs directly, no `ENTRYPOINT` **ci.yml** - Adds a `push: [main]` trigger so cache entries are written under main's ref — PR-branch caches die on squash-merge, leaving PR builds cold - Widens `paths-ignore` (`.forgejo/issue_template/**`, pull-request template) - Bumps the CI image to `sha-76bc1b1` **package.json** - Pins `packageManager` to `pnpm@10.33.4`. The athena Dockerfile template's `corepack enable pnpm` is reproducible only because athena pins this; without it corepack pulls its latest pnpm, which now rejects <24h-old transitive deps. The pin also matches the CI image's pnpm. ## Test plan - [x] `pnpm run lint` / `format:check` / `build` pass locally - [x] `pnpm install --frozen-lockfile` passes inside the `athena-archive-ci:sha-76bc1b1` image - [x] `docker build` succeeds; image serves `HTTP 200`, healthcheck exits 0, graceful `SIGTERM` shutdown - [ ] CI green on this PR
chore: redesign Dockerfile and CI workflow from athena-archive
All checks were successful
CI / lint (pull_request) Successful in 1m13s
CI / format (pull_request) Successful in 1m14s
CI / build (pull_request) Successful in 1m27s
2878065a1b
- Dockerfile: shared base stage, drop tini/libc6-compat, COPY . . in
  builder, no build args
- ci.yml: add push-to-main cache seeding, widen paths-ignore, bump CI
  image to sha-76bc1b1
- package.json: pin packageManager to pnpm@10.33.4 for reproducible,
  CI-matching corepack resolution
gravityfargo deleted branch chore/redesign-dockerfile-ci 2026-05-21 05:57:16 +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
gravityfargo/modernleft-home!28
No description provided.