This repository builds and manages containers used by sebaTEC. That includes devcontainers and Forgejo runners (Podman). https://www.sebatec.eu
  • Dockerfile 77.6%
  • Makefile 20.9%
  • Shell 1.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Sebastian Schulz af4a9849ae
All checks were successful
Build and push images / build-and-push (map[release:stable tags:[latest 1 1.0 1.0.0]]) (push) Successful in 3m32s
Build and push images / build-and-push (map[release:testing tags:[latest 1 1.0 1.0.0]]) (push) Successful in 4m30s
Build and push images / build-and-push-runners (map[release:stable tags:[latest 1 1.0 1.0.0]]) (push) Successful in 53s
Build and push images / build-and-push-runners (map[release:testing tags:[latest 1 1.0 1.0.0]]) (push) Successful in 1m14s
Build and push images / build-and-push-toolbox-minimal (push) Successful in 1m10s
Build and push images / build-and-push-toolbox-standard (push) Successful in 2m23s
Build and push images / build-and-push-toolbox-pandoc (push) Successful in 3m40s
Build and push images / build-and-push-devcontainer-minimal (push) Successful in 3m23s
Build and push images / build-and-push-toolbox-experiment (push) Successful in 4m29s
Build and push images / build-and-push-devcontainer-standard (push) Successful in 5m53s
Build and push images / build-and-push-devcontainer-pandoc (push) Successful in 4m28s
Build and push images / build-and-push-devcontainer-hugo (push) Successful in 6m15s
fix(devcontainer): move config into .devcontainer/ subdir for cli
2026-09-06 23:17:34 +00:00
.devcontainer fix(devcontainer): add common-utils feature to create vscode user 2026-09-04 17:25:16 +00:00
.forgejo/workflows ci: build and push toolbox/experiment 2026-08-30 16:20:06 +02:00
base docs: update READMEs across base, devcontainers, and runners 2026-06-25 23:18:04 +00:00
devcontainers fix(devcontainer): move config into .devcontainer/ subdir for cli 2026-09-06 23:17:34 +00:00
runners docs: update READMEs across base, devcontainers, and runners 2026-06-25 23:18:04 +00:00
toolbox chore(toolbox/experiment): add sudo and tmux packages 2026-08-30 16:18:13 +02:00
LICENSE Initial commit 2026-06-25 14:02:45 +00:00
README.md feat(toolbox): add toolbox category with minimal, standard, pandoc 2026-08-28 11:23:56 +00:00

sebatec-containers

Container images for sebaTEC infrastructure, including development environments and Forgejo Actions runners.

Overview

This repository provides four categories of container images:

  • Base images — Minimal Debian rootfs with essential development tools (Go, Python, Node.js, Git, compiler toolchain)
  • Toolbox — VSCode-free images carrying tool installations (e.g. fgj, pandoc+texlive), suitable for docker run or CI jobs beyond Forgejo
  • Devcontainers — Rich development environments for VS Code with language-specific features and extensions
  • Runners — Container images for Forgejo Actions CI/CD pipelines

All images are published to forge.sebatec.eu/sebatec-eu/.

What's Included

Base Images

Available in two variants:

Variant Base OS Published as
stable Debian Stable forge.sebatec.eu/sebatec-eu/base/stable
testing Debian Testing forge.sebatec.eu/sebatec-eu/base/testing

Preinstalled Software:

Category Tools
Runtimes Go, Node.js LTS, Python 3
Version control Git, Git LFS
Compilers GCC, G++
Build tools make, pkg-config, binutils, libc6-dev
Utilities curl, wget, rsync, jq, tar, zip, unzip, bzip2, gzip, xz-utils, sqlite3, inotify-tools
Security ca-certificates, gnupg2, openssh-client
Package managers pipx, npm (via Node.js)

Note

Node.js is pinned to the latest LTS release at build time, resolved via the endoflife.date API and verified against official Node.js release keys.

Devcontainers

Development environments for VS Code built on top of toolbox/* images. Each includes relevant extensions and settings.

Image Base Purpose
minimal base/testing Essential tools only: Git, common utilities, language-agnostic VS Code extensions
standard toolbox/standard Go and Python support with IDE integrations
hugo devcontainers/standard Static site generation (Hugo extended, Caddy, aspell)
pandoc toolbox/pandoc Document conversion (pandoc, texlive)

Toolbox

VSCode-free images with tool installations, layered on top of base images. Suitable for docker run or CI jobs that need specific tools without an IDE.

Image Base Contents
toolbox/minimal base/testing (chain anchor; no extra tools)
toolbox/standard toolbox/minimal fgj
toolbox/pandoc toolbox/standard pandoc, texlive

Note

toolbox/* images intentionally run as root. They contain no vscode user, no VSCode extensions, and no devcontainer.json glue. If you need an IDE-integrated environment, use the corresponding devcontainers/* image instead.

Forgejo Actions Runners

CI/CD container images for sebaTEC Forge. Runners ship the same toolchain as base images.

Variant Base OS Published as
stable Debian Stable forge.sebatec.eu/sebatec-eu/runners/stable
testing Debian Testing forge.sebatec.eu/sebatec-eu/runners/testing

Use labels directly in your workflow's runs-on: field.

Quick Start

Build all images

make -C base build-stable
make -C base build-testing
make -C toolbox build
make -C runners build
make -C devcontainers build

Build order matters: toolbox/* depends on base/testing, and devcontainers/* depends on toolbox/*. Build base first, then toolbox, then devcontainers.

Push to registry

# Requires: podman login forge.sebatec.eu
make -C base push-stable
make -C base push-testing
make -C runners push
make -C devcontainers push

Build/push individual images

# Build a single toolbox image
make -C toolbox build-standard

# Build a single devcontainer
make -C devcontainers build-standard

# Push a single devcontainer
make -C devcontainers push-standard

Project Structure

├── base/              # Base OS images (mkosi + Docker)
│   ├── Dockerfile     # Development toolchain
│   └── mkosi.conf     # Minimal Debian rootfs
├── toolbox/           # VSCode-free tool images (podman build)
│   ├── minimal/
│   ├── standard/
│   └── pandoc/
├── devcontainers/     # VS Code development environments
│   ├── minimal/
│   ├── standard/
│   ├── hugo/
│   └── pandoc/
└── runners/           # Forgejo Actions runners

For detailed instructions, see the README in each subdirectory.

Requirements

  • Podman or Docker (for building and pushing)
  • Node.js and npm (for devcontainer builds via @devcontainers/cli)
  • mkosi (for base image builds)

Environment Setup

For local registry access:

podman login forge.sebatec.eu
  1. Make your changes and commit them:
    git commit -m "Description of your changes"
    
  2. Push to your fork:
    git push origin feature-branch
    
  3. Create a pull request.

Guidelines

  • Follow the existing code style.
  • Write clear and concise commit messages.
  • Ensure your changes do not break existing functionality.
  • Update documentation as needed.

License

This project is licensed under the MIT License.