main
Build and Push Java Runner / build-and-push (push) Successful in 2m20s
…
Gitea Runners
This repository contains custom Docker images and CI/CD workflows for self-hosted Gitea runners.
Project Overview
This project provides Docker images designed to run as Gitea Actions runners with pre-installed build tools. The images are built and published to Docker Hub using automated Gitea workflows.
Docker Images
Images are published to Docker Hub under the username rmcampos:
| Image | Tags | Description |
|---|---|---|
rmcampos/graalvm-builder |
25 |
GraalVM Java 25 with Maven, Gradle, Node.js, and Docker CLI |
rmcampos/debian-trixie-node |
22 |
Debian Trixie with Node.js 22, Docker CLI, and Buildx |
GraalVM Builder Image (rmcampos/graalvm-builder:25)
Based on ghcr.io/graalvm/native-image-community:25
Includes:
- GraalVM Community Java 25
- Maven 3.9.9
- Gradle 8.14
- Node.js + npm (via microdnf)
- Docker CLI 29.4.0
- Additional tools: git, curl, wget, jq, unzip, zip, findutils
Node.js Runner Image (rmcampos/debian-trixie-node:22)
Based on debian:trixie-slim
Includes:
- Node.js 22 (via NodeSource)
- npm
- Docker CLI 29.4.0
- Docker Buildx 0.21.2
- Additional tools: git, curl, wget, jq, unzip, xz-utils
CI/CD Workflows
Gitea Actions workflows automatically build and push images on push to main or manual trigger:
Java Runner Workflow (.gitea/workflows/build-java-runner.yml)
- Triggers on:
- Push to
mainbranch affectingDockerfile.graalvmor the workflow itself - Manual workflow dispatch
- Push to
- Builds and pushes
rmcampos/graalvm-builder:25to Docker Hub
Node Runner Workflow (.gitea/workflows/build-node-runner.yml)
- Triggers on:
- Push to
mainbranch affectingDockerfile.node22or the workflow itself - Manual workflow dispatch
- Push to
- Builds and pushes
rmcampos/debian-trixie-node:22to Docker Hub
Both workflows require Docker Hub credentials stored as Gitea secrets:
DOCKERHUB_USERNAME- set tormcamposDOCKERHUB_PAT- Docker Hub personal access token
Using the Images
Pull the images directly from Docker Hub:
# GraalVM builder
docker pull rmcampos/graalvm-builder:25
# Node.js runner
docker pull rmcampos/debian-trixie-node:22
Use in Gitea Actions workflows:
jobs:
build:
runs-on: ubuntu-latest
container:
image: rmcampos/graalvm-builder:25
steps:
- uses: actions/checkout@v4
- run: mvn --version
Repository Structure
.
├── Dockerfile.graalvm # GraalVM Java runner image
├── Dockerfile.node22 # Node.js runner image
├── .gitea/workflows/ # CI/CD workflow definitions
│ ├── build-java-runner.yml
│ └── build-node-runner.yml
├── build-graalvm.sh # Manual build script for GraalVM image
├── build-node.sh # Manual build script for Node image
└── check-image.sh # Image verification script
Notes
- Images include Docker CLI only (no daemon), intended for use with DinD (Docker-in-Docker) or host-mounted Docker sockets
- All tool versions are explicitly pinned for reproducibility
- Both images are multi-purpose runners suitable for Java, JavaScript, and containerized builds
Languages
Shell
100%