feat: add shared runner Dockerfile and document rebuild process
All wiki pipelines share novoyuuparosk-wiki-runner:latest — a locally-built image with git, pandoc, ca-certificates, and Python packages pre-installed. Eliminates the apt-get and pip install steps from every job run. Rebuild manually on the Pi when deps change. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,8 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
RUN apt-get update -qq \
|
||||||
|
&& apt-get install -y --no-install-recommends git pandoc ca-certificates \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
COPY pipelines/songs/requirements.txt /tmp/songs-requirements.txt
|
||||||
|
RUN pip install --no-cache-dir -r /tmp/songs-requirements.txt
|
||||||
@@ -48,6 +48,17 @@ One `act_runner` instance serves all pipelines. Runs on a Pi 5 (Raspberry Pi OS
|
|||||||
|
|
||||||
Container network mode: `host` — required so job containers can reach `localhost:3005` (Gitea) and resolve mDNS hostnames.
|
Container network mode: `host` — required so job containers can reach `localhost:3005` (Gitea) and resolve mDNS hostnames.
|
||||||
|
|
||||||
|
### Job container image
|
||||||
|
|
||||||
|
All pipelines share a single pre-built Docker image: `novoyuuparosk-wiki-runner:latest`. The `Dockerfile` is at the repo root. It bakes in system deps (git, pandoc, ca-certificates) and all pipeline Python packages so job containers start instantly with no install steps.
|
||||||
|
|
||||||
|
The image is built manually on the Pi and stored in the local Docker daemon (`pull_image: false` in act_runner config). Rebuild after any change to the `Dockerfile` or a pipeline `requirements.txt`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build -t novoyuuparosk-wiki-runner:latest \
|
||||||
|
/home/mikkeli/dev/novoyuuparosk-auto-wiki
|
||||||
|
```
|
||||||
|
|
||||||
## Gitea Actions setup (cross-cutting)
|
## Gitea Actions setup (cross-cutting)
|
||||||
|
|
||||||
Secrets and variables are scoped to user `mikkeli` (no orgs on this instance), inherited by all repos under that account.
|
Secrets and variables are scoped to user `mikkeli` (no orgs on this instance), inherited by all repos under that account.
|
||||||
|
|||||||
Reference in New Issue
Block a user