From cfacbce19416b01baef055132db07f61efa5c552 Mon Sep 17 00:00:00 2001 From: rock Date: Mon, 7 Sep 2026 13:01:22 -0700 Subject: [PATCH] ci: remove custom runner image approach (use public Docker Hub images instead) Custom runner images were never needed. Forgejo runners pull label images (golang:1.26-bookworm, node:22-bookworm, rust:1-bookworm) from Docker Hub at job time. Node.js/docker are installed in workflow steps. Removes dead-end Dockerfiles and build workflow that couldn't push through Cloudflare's 100MB payload limit. --- .gitea/workflows/build-runner-images.yml | 93 ------------------- .../forgejo-runner-images/Dockerfile.golang | 12 --- .../forgejo-runner-images/Dockerfile.node | 12 --- .../forgejo-runner-images/Dockerfile.rust | 12 --- 4 files changed, 129 deletions(-) delete mode 100644 .gitea/workflows/build-runner-images.yml delete mode 100644 k8s/infra/forgejo-runner-images/Dockerfile.golang delete mode 100644 k8s/infra/forgejo-runner-images/Dockerfile.node delete mode 100644 k8s/infra/forgejo-runner-images/Dockerfile.rust diff --git a/.gitea/workflows/build-runner-images.yml b/.gitea/workflows/build-runner-images.yml deleted file mode 100644 index 1573a72..0000000 --- a/.gitea/workflows/build-runner-images.yml +++ /dev/null @@ -1,93 +0,0 @@ -name: Build & Push Runner Images - -on: - push: - branches: [main] - workflow_dispatch: # Manual trigger - schedule: - - cron: '0 2 * * 0' # Weekly on Sunday 2 AM UTC (ensure fresh images) - -env: - REGISTRY: forgejo.riotpiao.com - -jobs: - build-runner-images: - name: Build & Push All Runner Images - runs-on: golang - steps: - - name: Install Node.js and Docker - run: | - apt-get update - apt-get install -y nodejs docker.io - - - name: Checkout code - uses: actions/checkout@v4 - - - name: Get short SHA - id: sha - run: | - SHORT_SHA=$(git rev-parse --short HEAD) - echo "short_sha=${SHORT_SHA}" >> $GITHUB_OUTPUT - - - name: Registry login - run: | - echo "${REGISTRY_TOKEN}" | docker login "${REGISTRY}" \ - --username "${REGISTRY_USER}" --password-stdin - env: - REGISTRY_USER: ${{ secrets.FORGEJO_REGISTRY_USER }} - REGISTRY_TOKEN: ${{ secrets.FORGEJO_REGISTRY_TOKEN }} - - - name: Build and push Golang runner image - run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-golang" - echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" - - docker build --no-cache \ - -f k8s/infra/forgejo-runner-images/Dockerfile.golang \ - -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ - -t "${IMAGE}:latest" \ - . - - docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" - docker push "${IMAGE}:latest" - echo "✓ Pushed golang runner" - - - name: Build and push Node runner image - run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-node" - echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" - - docker build --no-cache \ - -f k8s/infra/forgejo-runner-images/Dockerfile.node \ - -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ - -t "${IMAGE}:latest" \ - . - - docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" - docker push "${IMAGE}:latest" - echo "✓ Pushed node runner" - - - name: Build and push Rust runner image - run: | - IMAGE="${REGISTRY}/rock/forgejo-runner-rust" - echo "Building: ${IMAGE}:${{ steps.sha.outputs.short_sha }}" - - docker build --no-cache \ - -f k8s/infra/forgejo-runner-images/Dockerfile.rust \ - -t "${IMAGE}:${{ steps.sha.outputs.short_sha }}" \ - -t "${IMAGE}:latest" \ - . - - docker push "${IMAGE}:${{ steps.sha.outputs.short_sha }}" - docker push "${IMAGE}:latest" - echo "✓ Pushed rust runner" - - - name: Prune unused images - run: docker image prune -a --force 2>&1 | tail -3 || true - - - name: Summary - run: | - echo "=== Runner Images Built and Pushed ===" - echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-golang:latest" - echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-node:latest" - echo "✓ forgejo.riotpiao.com/rock/forgejo-runner-rust:latest" diff --git a/k8s/infra/forgejo-runner-images/Dockerfile.golang b/k8s/infra/forgejo-runner-images/Dockerfile.golang deleted file mode 100644 index 93d7f34..0000000 --- a/k8s/infra/forgejo-runner-images/Dockerfile.golang +++ /dev/null @@ -1,12 +0,0 @@ -FROM golang:1.26-bookworm - -# Install Node.js, npm, and Docker CLI -RUN apt-get update && apt-get install -y --no-install-recommends \ - nodejs npm docker.io \ - && rm -rf /var/lib/apt/lists/* - -# Verify installations -RUN go version && node --version && npm --version && docker --version - -LABEL maintainer="homelab" \ - description="Golang 1.26 + Node.js + Docker CLI pre-installed" diff --git a/k8s/infra/forgejo-runner-images/Dockerfile.node b/k8s/infra/forgejo-runner-images/Dockerfile.node deleted file mode 100644 index 6bbc58b..0000000 --- a/k8s/infra/forgejo-runner-images/Dockerfile.node +++ /dev/null @@ -1,12 +0,0 @@ -FROM node:22-bookworm - -# Node.js already installed, add Docker CLI -RUN apt-get update && apt-get install -y --no-install-recommends \ - docker.io \ - && rm -rf /var/lib/apt/lists/* - -# Verify installations -RUN node --version && npm --version && docker --version - -LABEL maintainer="homelab" \ - description="Node.js 22 + Docker CLI pre-installed" diff --git a/k8s/infra/forgejo-runner-images/Dockerfile.rust b/k8s/infra/forgejo-runner-images/Dockerfile.rust deleted file mode 100644 index bece352..0000000 --- a/k8s/infra/forgejo-runner-images/Dockerfile.rust +++ /dev/null @@ -1,12 +0,0 @@ -FROM rust:1-bookworm - -# Add Node.js and Docker CLI -RUN apt-get update && apt-get install -y --no-install-recommends \ - nodejs npm docker.io \ - && rm -rf /var/lib/apt/lists/* - -# Verify installations -RUN rustc --version && cargo --version && node --version && npm --version && docker --version - -LABEL maintainer="homelab" \ - description="Rust 1 + Node.js + Docker CLI pre-installed"