No description
- Dockerfile 100%
ansible: - node:24-trixie-slim (Debian 13, Node 24 LTS statt Ubuntu + Node 22), 1,39 GB war zu groß - ansible-core 2.20.x mit requests und proxmoxer in einem venv (kein Nachinstallieren mehr) - Collections proxmox/docker/general/posix fest im Image, ungenutzter User und sudo raus terraform: - node:24-trixie-slim statt bookworm + NodeSource Node 20 (ohne Support) - Terraform 1.16.4 fest, Download mit SHA256-Prüfung, Multi-Stage - Provider bpg/proxmox vorab im Plugin-Cache, TF_IN_AUTOMATION/TF_INPUT/CHECKPOINT_DISABLE Workflow build-images.yaml (Matrix): pull immer, samstags ohne Cache, Tags latest/Version/Datum, Probestart nach dem Build. Alte Einzel-Workflows und nginx-test entfernt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .forgejo/workflows | ||
| ansible | ||
| terraform | ||
| README.MD | ||
🐳 Homelab · CI-Images
Eigene Container-Images für die Forgejo-Workflows des Homelabs. Sie liegen in der Registry dieses Forgejo:
git.home.derminator404.de/darius/docker/<image>.
| Image | Genutzt von | Inhalt |
|---|---|---|
ansible |
Infra-, Gitops- und Runner-Repo (Einrichten, Deploy, Updates, Runner) | ansible-core 2.20.x mit requests und proxmoxer in einem venv, Collections community.proxmox, community.docker, community.general, ansible.posix, dazu Git, SSH, Node.js 24 |
terraform |
Infra-Repo (10 · VMs · Terraform, 90 · VMs · Destroy) |
Terraform 1.16.4 (Prüfsumme kontrolliert), Proxmox-Provider bpg/proxmox ~> 0.113 vorab im Cache, Git, SSH, Node.js 24 |
Beide bauen auf node:24-trixie-slim auf (Debian 13 wie die VMs, Node.js 24 LTS für die Actions).
Tags
| Tag | Bedeutung |
|---|---|
latest |
neuester Build |
2.0.0 |
Version aus <image>/VERSION. Bei jeder größeren Änderung anheben |
2026-10-03 |
Build-Datum. Damit kann ein Workflow auf einen älteren Stand zurück, falls ein Neubau etwas kaputt macht |
Bauen
Workflow Images bauen (.forgejo/workflows/build-images.yaml), beide Images als Matrix:
- bei einem Push auf
mainmit Änderungen inansible/oderterraform/, - jeden Samstag um 01:00 ohne Cache: frisches Basis-Image und aktuelle Pakete. Mit Cache würde Docker die alte
apt-Schicht wiederverwenden und es kämen keine Updates, - manuell jederzeit.
Nach dem Bauen startet der Workflow jedes Image einmal zur Probe (ansible --version, terraform version).
Secret: REGISTRY_TOKEN, ein Token des Benutzers Darius mit write:package.
Versionen anheben
- ansible-core:
ANSIBLE_CORE_VERSIONinansible/Dockerfile. Neue Minor-Versionen können Playbooks ändern, deshalb bewusst anheben und testen. - Terraform:
TERRAFORM_VERSIONinterraform/Dockerfile. Danach im Infra-Repo den Image-Tag in10-vms-terraform.yamlund90-vms-destroy.yamlanpassen. - Collections / Provider: Versionsbereiche in den Dockerfiles.