Skip to content

makerprism/containers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Makerprism Containers

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

Published Images

ghcr.io/makerprism/containers/dev-base (Recommended)

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.23.0 (built from the official release tarball during image build)
  • build toolchain (make, gcc, musl-dev via build-base)
  • common CI tools (git, curl, jq, unzip, etc.)
  • Claude Code CLI (for coding agents)
  • GitHub CLI (gh)

Version source: images/dev-base/VERSION

ghcr.io/makerprism/containers/backend-builder-base

Purpose: generic backend Docker builder base for static OCaml/PostgreSQL-linked binaries.

Includes:

  • Alpine 3.20
  • OCaml build deps + static libs
  • dune 3.23.0 (built from the official release tarball during image build)
  • PostgreSQL static client libraries built from source (v16.3)

Version source: images/backend-builder-base/VERSION

ghcr.io/makerprism/ci-node-pnpm-dune (Deprecated)

⚠️ Deprecated - Use dev-base instead.

This image is no longer built. Existing tags remain available but will not receive updates.

Tagging Policy

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.

Versioning

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

Publishing

Workflow: .github/workflows/build-images.yml

Triggers:

  • push to main when image/workflow files change
  • pull requests for validation builds (no publish)
  • manual run (workflow_dispatch)

Images are published to repository-scoped GHCR paths under ghcr.io/makerprism/containers/.... The workflow also publishes the previous org-scoped paths under ghcr.io/makerprism/... for existing consumers, but new CI consumers should use the repository-scoped paths.

Visibility

Repository-scoped image paths are the public distribution path. They are created by the public makerprism/containers repository workflow, which keeps package visibility tied to this repository instead of depending on a separate GHCR visibility toggle.

Why GHCR first (vs Docker Hub)

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.

Consumer Examples

GitHub Actions job container

jobs:
  build_frontend:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/makerprism/containers/dev-base:3
    steps:
      - uses: actions/checkout@v4
      - run: pnpm --version && dune --version

Dockerfile backend builder base

FROM ghcr.io/makerprism/containers/backend-builder-base:3 AS builder
WORKDIR /app
COPY . .
RUN dune build --profile=release bin/main.exe

About

Containers and Workflows for GitHub Actions and Docker builds

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors