# Runner base image for Forgejo act_runner job containers. # Pre-installs Python 3.12 and Node 20 so the test job skips the # ~3-4 minute deadsnakes PPA install on every run. # # Build and push (one-time setup, re-run if this file changes): # docker build -f infra/Dockerfile.runner-base \ # -t git.fabledsword.com/bvandeusen/runner-base:py3.12-node22 . # docker push git.fabledsword.com/bvandeusen/runner-base:py3.12-node22 # # Then redeploy the act_runner stack in Portainer to pick up the new label. FROM ubuntu:24.04 ENV DEBIAN_FRONTEND=noninteractive # Split into separate RUN steps so each pushed layer is smaller. # One combined layer would be ~280MB and exceeds the nginx upload timeout. # Python 3.12 ships in Ubuntu 24.04 main repos — no PPA needed. RUN apt-get update -qq && \ apt-get install -y -qq \ python3.12 python3.12-dev python3.12-venv python3-pip \ git curl ca-certificates gnupg && \ apt-get clean && rm -rf /var/lib/apt/lists/* # Node 22 LTS via NodeSource RUN curl -fsSL https://deb.nodesource.com/setup_22.x | bash - && \ apt-get install -y -qq nodejs && \ apt-get clean && rm -rf /var/lib/apt/lists/* # Docker CLI — daemon comes from the host socket mount, only CLI needed. # docker.io from Ubuntu repos is sufficient for docker login + buildx. RUN apt-get update -qq && \ apt-get install -y -qq docker.io && \ apt-get clean && rm -rf /var/lib/apt/lists/*