Reusable container images for Makerprism engineering workflows.
This repository publishes versioned images to GitHub Container Registry (GHCR) for:
- GitHub Actions CI jobs across Makerprism repositories
- Backend Docker builds that need a stable toolchain base
Purpose: unified image for CI pipelines, coding agents, and local development.
Includes:
- Alpine Linux 3.22
- Node.js 20.20.0
- pnpm 10
- dune 3.21
- build toolchain (
make,gcc, musl-dev viabuild-base) - common CI tools (
git,curl,jq,unzip, etc.) - Claude Code CLI (for coding agents)
- GitHub CLI (
gh)
Version source: images/dev-base/VERSION
Purpose: generic backend Docker builder base for static OCaml/PostgreSQL-linked binaries.
Includes:
- Alpine 3.20
- OCaml build deps + static libs
- dune 3.21
- PostgreSQL static client libraries built from source (v16.3)
Version source: images/backend-builder-base/VERSION
⚠️ Deprecated - Usedev-baseinstead.
This image is no longer built. Existing tags remain available but will not receive updates.
Each image is published with:
- exact version tag from
VERSION(recommended for consumers) - major alias tag (e.g.
:1) - immutable commit tag (
:sha-<gitsha>)
For production-grade consumers, pinning by digest is recommended.
This project follows Semantic Versioning 2.0.0:
- MAJOR: Incompatible changes that break existing consumers
- MINOR: Backwards-compatible additions or new features
- PATCH: Backwards-compatible bug fixes
Workflow: .github/workflows/build-images.yml
Triggers:
- push to
mainwhen image/workflow files change - pull requests for validation builds (no publish)
- manual run (
workflow_dispatch)
By default, images are published to GHCR with repository-scoped access.
Current plan: org-private packages while validating stability.
When ready, package visibility can be switched to public in GHCR package settings without changing image names.
GHCR is currently preferred because:
- native GitHub Actions auth with
GITHUB_TOKEN - straightforward org-private package access control
- no extra Docker Hub credential handling for CI
Docker Hub mirroring can be added later as an additional publish target once images are stable.
jobs:
build_frontend:
runs-on: ubuntu-latest
container:
image: ghcr.io/makerprism/dev-base:1
steps:
- uses: actions/checkout@v4
- run: pnpm --version && dune --versionFROM ghcr.io/makerprism/backend-builder-base:1 AS builder
WORKDIR /app
COPY . .
RUN dune build --profile=release bin/main.exe