Tagging-Struktur
Plattformspezifische Images:
<upstream-version>-<ref>[-<variant>]-<architecture>Plattformunabhängige Images (Multi-Arch):
<upstream-version>-<ref>[-<variant>]Wenn ref oder upstreamVersion leer ist, werden die Parameter ausgelassen.
1. Upstream-Rebuild-Images
Upstream-Rebuild-Images spiegeln direkt die Version ihres Upstream-Äquivalents wider (z. B. Node.js 24) und gewährleisten so eine enge 1:1-Beziehung zum offiziellen Release.
Release Tags
Für Produktiv-Releases sollte ein Rebuild-Identifier (z. B. oc.2) als Ref verwendet werden, um unveränderliche, versionierte Tags zu erstellen:
| Tag | Beschreibung |
|---|---|
24 | Aktuellster Build von Node.js 24 (laufender Index Manifest) |
24-oc.2 | Bestimmter Rebuild von Node.js 24 (fester Index Manifest) |
20-minimal | Aktuellste Minimal-Variante von Node.js 20 (laufender Index Manifest) |
20-oc.2-minimal | Bestimmter Rebuild der minimalen Node.js 20 (fester Index Manifest) |
Konvention für Rebuild-Identifier: Wird ein Image ohne Änderung der Upstream-Version neu gebaut (z. B. für Container-Härtung), wird der Rebuild-Zähler oc.<Nummer> hochgezählt.
Entwicklungs-/CI-Tags
Für CI-Pipelines wird der Name des entsprechenden Git-Branches als Ref verwendet:
| Tag | Beschreibung |
|---|---|
24-main-minimal | Index Manifest für minimales Node.js 24 vom main-Branch |
24-main-minimal-amd64 | Plattformspezifisches Image für amd64 |
24-main-minimal-arm64 | Plattformspezifisches Image für arm64 |
20-main | Index Manifest für Node.js 20 vom main-Branch |
20-main-arm64 | Plattformspezifisches Image für arm64 |
Beispiele für die Tag-Hierarchie
nodejs:24 (fortlaufend, aktuellste Version)
nodejs:24-oc.2 → nodejs:24-oc.2-amd64, nodejs:24-oc.2-arm64
nodejs:20-minimal (fortlaufend, aktuellste minimale Variante)
nodejs:20-oc.2-minimal → nodejs:20-oc.2-minimal-amd64, nodejs:20-oc.2-minimal-arm64
nodejs:24-main-minimal → nodejs:24-main-minimal-amd64, nodejs:24-main-minimal-arm64
nodejs:20-main → nodejs:20-main-amd64, nodejs:20-main-arm642. Zusammengesetzte Images
Zusammengesetzte Images fassen mehrere Komponenten mit jeweils eigenen Versionen zusammen. Da es keine einzelne Upstream-Version gibt, wird upstreamVersion ausgelasen und semantische Versionen im refparameter verwendet.
Format:
<ref>[-<variant>][-<architecture>]Beispiele:
| Tag | Beschreibung |
|---|---|
1.0.0 | Index Manifest für Version 1.0.0 |
1.0.0-minimal | Index Manifest für die minimale Variante |
1.0.0-minimal-amd64 | Plattformspezifische minimale Variante |
main-amd64 | Entwicklungs-Build vom main-Branch |
Tooling
Der Image-Tag wird mit Hilfe des Befehls devguard-scanner generate-tag erzeugt und besitzt folgende Parameter:
| Parameter | Beschreibung | Beispiel |
|---|---|---|
--upstreamVersion | Version der Upstream-Quelle (“0” für zusammengesetzte Images) | 24, 20 |
--ref | Name der Git-Referenz (Branch, Tag oder Rebuild-Identifier) | main, oc.2 |
--imageVariant | Beschreibt optional die Image-Variante | minimal |
--architecture | Ziel-CPU-Architektur (bei Index Manifests auslassen) | amd64, arm64 |
--imagePath | Pfad des Images im Basis Registry | registry.opencode.de/oci-community/images/zendis/nodejs |
--imageSuffix | Optionaler Suffix für den imagePath Parameter | web, api |
Image Path Suffix
Der Parameter imageSuffix hängt einen Suffix an den Basis-imagePath an. Das kann nützlich sein, wenn ein einzelnes Repository mehrere Varianten eines Images erzeugt, die unter verschiedenen Pfaden abgelegt werden.
- Wenn
imageSuffixleer oder"default"ist, wird es ignoriert - Andernfalls wird es folgendermaßen an den
imagePathangehängt:<imagePath>/<imageSuffix>
Beispiel:
| imagePath | imageSuffix | Tag | Vollständige Image-Referenz |
|---|---|---|---|
registry.opencode.de/project | default | 1.0.0-amd64 | registry.opencode.de/project:1.0.0-amd64 |
registry.opencode.de/project | web | 1.0.0-amd64 | registry.opencode.de/project/web:1.0.0-amd64 |
Ausgabevariablen
Der Befehl generate-tag gibt drei Umgebungsvariablen zurück:
IMAGE_TAG=registry.opencode.de/oci-community/images/zendis/nodejs:24-main-minimal-amd64
ARTIFACT_NAME=pkg:oci/nodejs?repository_url=registry.opencode.de/oci-community/images/zendis/nodejs&arch=amd64&tag=24-main-minimal-amd64
ARTIFACT_URL_ENCODED=pkg%3Aoci%2Fnodejs%3Frepository_url%3Dregistry.opencode.de%2Fopen-code%2Foci%2Fnodejs%26arch%3Damd64%26tag%3D24-main-minimal-amd64Diese werden dann später in eine dotenv Datei geschrieben und können dann von der CI/CD Pipeline genutzt werden.