No description
  • Shell 88%
  • Dockerfile 12%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Kyle Mendell 127a73f4ab
All checks were successful
Build runner images / alpine:latest (push) Successful in 1m39s
Build runner images / debian:sid (push) Successful in 2m19s
Build runner images / ubuntu:26.04 (push) Successful in 2m24s
add terrraform
2026-08-22 21:54:49 -05:00
.forgejo/workflows add alpine runner 2026-08-08 15:23:47 -05:00
scripts add terrraform 2026-08-22 21:54:49 -05:00
.dockerignore chore: move to new org 2026-08-07 13:53:54 -05:00
Dockerfile add alpine runner 2026-08-08 15:23:47 -05:00
README.md add terrraform 2026-08-22 21:54:49 -05:00

Forgejo Actions Runner Images

Minimal base images for Forgejo Actions jobs.

Tags

Image Tags
forgejo.ofkm.us/actions/ubuntu 26.04, latest
forgejo.ofkm.us/actions/debian sid, latest
forgejo.ofkm.us/actions/alpine latest

What's installed

  • ca-certificates
  • curl
  • dig
  • git
  • jq
  • sudo
  • unzip
  • xz-utils
  • zstd
  • Latest stable Go toolchain
  • Latest Node.js 26 release (required to run JavaScript actions)
  • Latest stable pnpm release
  • Latest Terraform and TFLint releases
  • Docker CLI (client only, no daemon)

The Alpine image also includes build-base, coreutils, gcompat, and Linux headers for native builds. gcompat supplies Alpine's supported glibc compatibility layer while the image remains musl-based.

Other build toolchains, rsync, git-lfs and friends are not intentionally provisioned — install them in the workflow that needs them.

Jobs run as a non-root runner user (uid/gid 1001) with passwordless sudo. /opt/hostedtoolcache is writable and RUNNER_TOOL_CACHE, AGENT_TOOLSDIRECTORY, and RUNNER_TEMP are set.

Usage

container:
  labels:
    ubuntu-latest: docker://forgejo.ofkm.us/actions/ubuntu:latest
    ubuntu-26.04: docker://forgejo.ofkm.us/actions/ubuntu:26.04
    debian-sid: docker://forgejo.ofkm.us/actions/debian:sid
    alpine-latest: docker://forgejo.ofkm.us/actions/alpine:latest
jobs:
  test:
    runs-on: ubuntu-26.04
    steps:
      - uses: actions/checkout@v4
      - run: sudo apt-get update && sudo apt-get install -y python3

Building

One Dockerfile builds every variant; scripts/setup.sh detects the distro from /etc/os-release. There are no default build args — see the build-args block in .forgejo/workflows/build.yml for the values used in published images.

docker build \
  --build-arg BASE_IMAGE=ubuntu:26.04 \
  --build-arg APT_MIRROR_BASE=https://pkgs.ofkm.us \
  --build-arg NODE_MAJOR=26 \
  --build-arg PNPM_VERSION=latest \
  --build-arg RUNNER_USER=runner \
  --build-arg RUNNER_UID=1001 \
  --build-arg RUNNER_GID=1001 \
  --build-arg TOOLCHAIN_REFRESH="$(date +%s)" \
  -t actions/ubuntu:26.04 .

Add a variant with a matrix entry in the workflow; change the matching distro package set in scripts/setup.sh.

Pushes authenticate with a Forgejo authorized integration (OIDC), not a static token.