# KNEL-Football ISO Builder - Dockerfile
# Multi-stage build for security hardening and reproducible builds
# Copyright © 2026 Known Element Enterprises LLC
# License: GNU Affero General Public License v3.0 only

# Base stage - minimal Debian 13 base
FROM debian:13.3-slim AS base

# Set environment variables for non-interactive installation
ENV DEBIAN_FRONTEND=noninteractive
ENV LANG=C.UTF-8
ENV LC_ALL=C
ENV TZ=UTC

# Install base dependencies (versions pinned for reproducible builds - FINDING-006)
RUN apt-get update && apt-get install -y --no-install-recommends \
    ca-certificates=20250419 \
    gnupg=2.4.7-21+deb13u1 \
    curl=8.14.1-2+deb13u2 \
    wget=1.25.0-2 \
    git=1:2.47.3-0+deb13u1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Builder stage - ISO build tools
FROM base AS builder

# Install live-build and ISO creation tools (versions pinned for reproducible builds - FINDING-006)
RUN apt-get update && apt-get install -y --no-install-recommends \
    live-build=1:20250505+deb13u1 \
    debootstrap=1.0.141 \
    squashfs-tools=1:4.6.1-1 \
    xorriso=1.5.6-1.2+b1 \
    grub-pc-bin=2.12-9 \
    grub-efi-amd64-bin=2.12-9 \
    grub-efi-ia32-bin=2.12-9 \
    mtools=4.0.48-1 \
    dosfstools=4.2-1.2 \
    syslinux-utils=3:6.04~git20190206.bf6db5b4+dfsg1-3.1 \
    isolinux=3:6.04~git20190206.bf6db5b4+dfsg1-3.1 \
    file=1:5.46-2 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install testing framework (versions pinned for reproducible builds - FINDING-006)
RUN apt-get update && apt-get install -y --no-install-recommends \
    bats=1.11.1-1 \
    bats-assert=2.1.0-3 \
    bats-support=0.3.0-4 \
    bats-file=0.4.0-1 \
    shellcheck=0.10.0-1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Install security and system tools (versions pinned for reproducible builds - FINDING-006)
RUN apt-get update && apt-get install -y --no-install-recommends \
    nftables=1.1.3-1 \
    iptables=1.8.11-2 \
    auditd=1:4.0.2-2+b2 \
    rsyslog=8.2504.0-1 \
    && apt-get clean \
    && rm -rf /var/lib/apt/lists/*

# Create workspace directories
RUN mkdir -p /workspace /build /tmp /output

# Create non-root user for running builds
RUN groupadd -r builder && useradd -r -g builder builder \
    && mkdir -p /home/builder \
    && chown -R builder:builder /workspace /build /tmp /output /home/builder

# Set working directory
WORKDIR /workspace

# Switch to non-root user
USER builder

# Default command
CMD ["/bin/bash"]
