A minimal Debian container with customizable version support. This container provides a clean Debian base image with version flexibility for various use cases.
A small, opinionated Debian base built FROM debian:trixie (Debian 13) with the additions a downstream container usually needs anyway: configurable locales, a passwordless sudo non-root user, aptitude, and ca-certificates — all installed in a single layer with the apt cache cleaned up.
variants.yaml ships only the trixie track, kept current via the daily upstream-monitor workflow. No fan-out across stable / oldstable; pin to trixie and let the rebuild pipeline carry the patch updates.debian user is created with passwordless sudo so containers using this base can run as a non-root identity without paving the user-creation boilerplate themselves.LOCALES build arg installs the requested locale set and sets LANG/LANGUAGE/LC_ALL from the first entry, so downstream images can land a non-default locale without re-running localedef.web-shell's Debian distro variant derives from this image (see web-shell/generate-dockerfile.sh). Other fleet containers use upstream Debian / Ubuntu directly; the role here is the curated "fleet-internal Debian base" rather than a universal base layer.linux/amd64 and linux/arm64 via a multi-arch manifest. Downstream FROM statements pick the correct platform automatically.Every build ships a Sigstore-signed SBOM and a full Trivy scan — verify them yourself, no login required:
gh attestation verify oci://ghcr.io/oorabona/debian:latest --owner oorabona
Full walkthrough (SBOM payload, Trivy findings, multi-arch manifest inspection, upstream dependency tracking) → https://oorabona.github.io/docker-containers/verify-images/
version: '3.8'
services:
debian-app:
build:
context: .
args:
VERSION: bookworm-slim
volumes:
- ./app:/app
working_dir: /app
command: bash
# Use default version
docker run -it --rm debian-base bash
# Specify version
docker build --build-arg VERSION=bullseye-slim -t debian-base .
docker run -it --rm debian-base bash
VERSION - Debian version tag (default: defined in version.sh)
bookworm-slim - Debian 12 (current stable)bullseye-slim - Debian 11 (oldstable)bookworm - Full Debian 12 imagebullseye - Full Debian 11 imagecd debian
docker-compose build
# Or with specific version
docker build --build-arg VERSION=bookworm-slim -t debian-base .
This container uses automated version detection for the latest Debian releases:
./version.sh # Current version
./version.sh latest # Latest available version
The version script automatically detects the latest stable Debian release and updates accordingly.
docker exec or SSH keys)debian user# Secure runtime configuration
docker run -it --rm \
--read-only \
--tmpfs /tmp \
--tmpfs /run \
--cap-drop ALL \
--security-opt no-new-privileges:true \
debian-base bash
services:
debian:
image: ghcr.io/oorabona/debian:latest
read_only: true
tmpfs:
- /tmp
- /run
cap_drop:
- ALL
security_opt:
- no-new-privileges:true
The export.sh script is a powerful migration utility for creating custom Debian containers that replicate your host system's configuration. This is particularly useful for:
# Basic usage - create container with same packages
./export.sh --packages=install --version=bookworm
# Advanced usage - full system migration
./export.sh \
--version=bookworm-slim \
--locales="en_US fr_FR" \
--packages=install \
--package-manager=apt \
--copy-etc \
--copy-etc-exclude="secrets,private" \
--copy-home \
--copy-home-exclude=".cache,.tmp" \
--omit-linux-kernel
# Help and options
./export.sh --help
--version=<version> - Target Debian version (e.g., bookworm, bullseye)--locales=<locales> - Locales to install (e.g., "en_US fr_FR")--packages=[none|copy|install] - Package management strategy
none - Don't manage packagescopy - Copy package list onlyinstall - Copy and install packages--package-manager=[apt|apt-get|aptitude] - Choose package manager--copy-etc - Copy /etc directory configuration--copy-etc-exclude=<dirs> - Exclude directories from /etc (comma-separated)--copy-home - Copy /home directory--copy-home-exclude=<dirs> - Exclude directories from /home--omit-linux-kernel - Skip Linux kernel packagesThe script creates a debian-<version>.tar file containing your migrated system that can be imported as a Docker image:
# Import the exported container
docker import debian-bookworm.tar my-custom-debian:latest
# Run your migrated system
docker run -it my-custom-debian:latest bash
--copy-etc-exclude and --copy-home-excludeContent type
Image
Digest
sha256:81cb70daf…
Size
80.2 MB
Last updated
1 day ago
docker pull oorabona/debian