Sign inSign up

rostertools/ci-node-moon

By rostertools

โ€ขUpdated 6 months ago

Minimal Node 22 CI image with pnpm, Proto and Moon for fast builds

Image
Integration & delivery
Developer tools
0

307

rostertools/ci-node-moon repository overview

โ ๐Ÿš€ rostertools/ci-node-moon

Minimal, production-ready Docker images for high-performance CI pipelines using:

  • Node.js 22
  • pnpm (via Corepack)
  • Proto (toolchain manager)
  • Moon (task runner & build system)

Designed for GitHub Actions, Forgejo Actions, and other container-based CI systems.


โ ๐Ÿ“ฆ Available Tags

ImageDescription
rostertools/ci-node-moon:22.22.2-slimโœ… Recommended. Debian-based, stable, fully compatible
rostertools/ci-node-moon:22-alpineโš ๏ธ Experimental. Smaller, but may have compatibility issues

โ โœจ Features

  • โšก Zero setup CI โ€“ no need to install Node, pnpm, or Moon in your pipeline

  • ๐Ÿ“ฆ pnpm ready via Corepack

  • ๐Ÿง  Proto preinstalled for toolchain management

  • ๐ŸŒ™ Moon preinstalled for monorepos and task orchestration

  • ๐Ÿ” Includes:

    • git
    • curl
    • jq
    • rsync
    • openssh-client
    • ca-certificates
  • ๐Ÿชถ Lightweight and optimized for fast pulls

  • ๐Ÿ” Designed for cache-friendly workflows


โ ๐Ÿง  Why use this image?

Traditional CI pipelines waste time on:

  • Installing Node.js
  • Installing pnpm
  • Installing Moon & toolchains
  • Repeating setup on every run

This image eliminates that overhead, enabling:

  • โšก Faster startup times
  • ๐Ÿ” Better cache utilization
  • ๐Ÿงฉ Cleaner workflows

โ ๐Ÿš€ Usage

โ ๐Ÿ”ต GitHub Actions
name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    container:
      image: rostertools/ci-node-moon:22.22.2-slim

    steps:
      - uses: actions/checkout@v4

      - name: Install dependencies
        run: pnpm install --frozen-lockfile --prefer-offline

      - name: Build
        run: moon run :build --parallel

โ ๐ŸŸข Forgejo Actions
name: CI

on:
  push:

jobs:
  build:
    runs-on: self-host

    container:
      image: rostertools/ci-node-moon:22.22.2-slim

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Install dependencies
        run: pnpm install --frozen-lockfile --prefer-offline

      - name: Build
        run: moon run :build --parallel

โ ๐Ÿ” Private Registry Auth (pnpm)

If you use a private registry:

- name: Setup npm auth
  run: |
    echo "//registry.example.com/:_authToken=${NPM_TOKEN}" > ~/.npmrc

โ โšก Performance Tips

  • Use pnpm fetch before install for faster dependency resolution

  • Cache:

    • ~/.local/share/pnpm
    • .moon/cache
  • Prefer:

    pnpm install --prefer-offline
    

โ โš ๏ธ Alpine Variant Notes

The 22-alpine image is smaller but:

  • Uses musl libc instead of glibc
  • Some native dependencies may fail (e.g. esbuild, sharp, etc.)
  • Moon/Proto toolchains may have edge-case issues

๐Ÿ‘‰ Use only if fully tested in your pipeline


โ ๐Ÿงช Local Testing

docker run -it --rm \
  -v $(pwd):/workspace \
  -w /workspace \
  rostertools/ci-node-moon:22.22.2-slim bash

โ ๐Ÿ›  Included Tools

  • Node.js 22
  • pnpm
  • Proto
  • Moon
  • Git
  • Curl
  • OpenSSH client
  • Rsync

โ ๐Ÿ“„ License

Apache License Version 2.0


โ ๐Ÿค Contributing

Issues and PRs are welcome. This project is focused on CI performance and developer experience.


โ โญ Support

If this image improves your CI times, consider giving it a โญ on Docker Hub or sharing it.

2026 Roster Tools - https://www.roster.liโ 

Tag summary

Content type

Image

Digest

sha256:02f71aaf8โ€ฆ

Size

120.7 MB

Last updated

6 months ago

docker pull rostertools/ci-node-moon:22-alpine