|
All checks were successful
Build Runner Images / Prepare Build (push) Successful in 4m44s
Build Runner Images / Build Ubuntu Previous (push) Successful in 2m15s
Build Runner Images / Build Ubuntu Latest (push) Successful in 2m27s
Build Runner Images / Build Ubuntu Rolling (push) Successful in 1m32s
Build Runner Images / Build Fedora Latest (push) Successful in 1m30s
Build Runner Images / Build Fedora Previous (push) Successful in 1m24s
Build Runner Images / Build Fedora Rawhide (push) Successful in 1m25s
Build Runner Images / Build Debian Oldstable (push) Successful in 2m54s
Build Runner Images / Build Debian Sid/Unstable (push) Successful in 5m37s
Build Runner Images / Build Ubuntu Latest Python 3.13 (push) Successful in 1m58s
Build Runner Images / Build Ubuntu Previous Python 3.13 (push) Successful in 1m22s
Build Runner Images / Update README if needed (push) Successful in 14s
Build Runner Images / Build Debian Stable (push) Successful in 9m2s
Build Runner Images / Mirror Images to GHCR (push) Successful in 16m1s
Debian's sqv tool began rejecting SHA1 OpenPGP signatures on 2026-02-01. LLVM's apt repo signing key uses a SHA1-bound signature, causing apt-get update to hard-fail on all three Debian variants (bookworm, trixie, sid). The LLVM repo was added for user convenience only - no LLVM packages are installed during the build. Debian Sid and Trixie ship recent clang/llvm natively, so users lose nothing meaningful. Track upstream resolution at: https://github.com/llvm/llvm-project/issues/179147 https://github.com/llvm/llvm-project/issues/179148 |
||
|---|---|---|
| .forgejo | ||
| docker | ||
| docs | ||
| .gitignore | ||
| .markdownlint.yaml | ||
| .pre-commit-config.yaml | ||
| LICENCE | ||
| README.md | ||
ACT Runner Images
Production-ready runner images for Forgejo Actions and ACT with comprehensive language support and nightly updates.
Note
Images are built nightly on my Forgejo instance and automatically mirrored to GitHub Container Registry for optimal CDN performance.
Usage examples
GitHub Actions:
jobs:
test:
runs-on: ubuntu-latest
container: ghcr.io/tcpipuk/act-runner:ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: python --version
- run: node --version
ACT:
act -P ubuntu-latest=ghcr.io/tcpipuk/act-runner:ubuntu-latest
Ubuntu images
View all available tags and versions →
| Ubuntu Version | Alias Tag | Node.js | Python Versions Available |
|---|---|---|---|
| 25.10 (Development) | ubuntu-rolling |
24 | 3.13 |
| 24.04 LTS (Current) | ubuntu-latest |
24 | 3.12, 3.13 |
| 22.04 LTS (Previous) | ubuntu-previous |
22 | 3.10, 3.13 |
Note: Italicised versions are the native Python for each Ubuntu release. Non-native versions use the latest stable Python (3.13) from deadsnakes PPA.
Fedora images
View all available tags and versions →
| Fedora Version | Alias Tag | Node.js | Python Versions Available |
|---|---|---|---|
| Rawhide (Development) | fedora-rawhide |
24 | 3.14 |
| 43 (Current) | fedora-latest |
24 | 3.14 |
| 41 (Previous) | fedora-previous |
22 | 3.13 |
Debian images
View all available tags and versions →
| Debian Version | Alias Tag | Node.js | Python Versions Available |
|---|---|---|---|
| sid (Forky - Sid/Unstable) | debian-sid |
24 | 3.13 |
| 13 (Trixie - Stable) | debian-latest |
24 | 3.13 |
| 12 (Bookworm - Oldstable) | debian-oldstable |
22 | 3.11 |
Note: Debian images use only the native Python version for each release, providing better system integration than external PPAs.
Why these images?
- Wide compatibility - Works with Forgejo Actions, Gitea Actions, and ACT
- amd64 support - Multi-arch builds incompatible with current build environment
- Always current - Automatically tracks all supported Node.js and Python versions
- Nightly updates with intelligent layering - only download what's changed
- Pre-configured tools - Docker, build-essential, gh CLI, and development libraries ready to go
- Smart caching - Layered architecture means updates are incremental, not full re-downloads
What's included
All images include:
- Build essentials (gcc, g++, make, cmake, pkg-config)
- Full Docker stack including daemon, CLI and Compose (via
docker.iopackage on Ubuntu/Debian,moby-engineon Fedora, all with multi-architecture support and Docker-in-Docker capabilities) - GitHub CLI (
gh) - Git and Git LFS
- Common utilities (curl, wget, jq, tar, zip)
- Pre-configured package repositories (LLVM, Kubernetes, HashiCorp*, Microsoft)
- Deadsnakes PPA repository (non-rolling Ubuntu releases only)
Note
* HashiCorp repository is not available for Debian sid/unstable
Runtime languages:
- Node.js with npm/npx (single version per image: oldest supported LTS for 'previous/oldstable' releases, newest LTS for 'latest/stable' releases, newest stable for 'rolling/rawhide/sid' releases)
- Go (latest stable release across all images)
- Python (native OS version, plus optionally latest stable Python from deadsnakes PPA for non-rolling Ubuntu releases)
- uv package manager
- Rust toolchain manager (rustup) with minimal profile (stable toolchain for stable distros, nightly toolchain for rolling/rawhide/sid releases)
- Pre-installed Python development tools (ruff, mypy, pytest, black, isort, prek)
- Compatible with actions/setup-node
- See docs/python.md for full details
Building your own
Need to customise these images? See docs/self-build.md for detailed build instructions.
Credits
Inspired by catthehacker/docker_images. This project provides automated builds with wider version coverage and optimised layer caching.
License
MIT - See LICENSE file for details.