pithyx lock
pithyx lock löst jedes Image der Compose-Datei des Backends bei seiner Registry auf und schreibt backend/images.lock.json: pro Image den Digest des Plattform-Manifests und die Image-ID (Config-Digest) für amd64 und arm64. Die Box und pithyx validate lehnen ein Backend ab, dessen Lock nicht zu seiner Compose-Datei passt. Nutze es für Backends, die nur Images nennen; pithyx build schreibt den Lock für die Dienste, die es baut, selbst.
pithyx lock [project folder] [--frontend <folder>]Optionen
Abschnitt betitelt „Optionen“| Option | Wert | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--frontend |
<folder> |
string | dist |
The built frontend |
--frontend wird gelesen, ändert für lock aber nichts.
Wie es auflöst
Abschnitt betitelt „Wie es auflöst“- Es liest
pithyx.jsonund die Compose-Datei ausbackend.composeund nimmt dasimagejedes Dienstes (jedes Image einmal, sortiert). Images müssen per Digest gepinnt sein (name@sha256:...), wie es die Compose-Regeln verlangen. - Für jedes Image holt es das Manifest über seinen Digest. Bei einem Index für mehrere Plattformen nimmt es die Einträge
linux/amd64undlinux/arm64(bei arm64 ohne Variante oder mitv8) und liest jeweils den Config-Digest. Bei einem Image für eine Plattform liest es die Config, um die Architektur zu erfahren. - Ein Image ohne eine der beiden Architekturen lässt den Befehl scheitern. Ein Image mit nur einer wird geschrieben;
validatewarnt dann mitcli.lock.platform_missing. - Registrys werden anonym gefragt oder mit den Zugangsdaten unter
authsin~/.docker/config.json(oder$DOCKER_CONFIG/config.json), einschließlich des Token-Ablaufs von Registrys wie Docker Hub und GHCR. Credential-Helper werden nicht genutzt. - Es schreibt die Datei nur, wenn sich der Inhalt geändert hat:
backend/images.lock.json is up to date.oderWrote backend/images.lock.json for <n> image(s).
Dateien
Abschnitt betitelt „Dateien“| Datei | Zugriff |
|---|---|
pithyx.json |
gelesen |
die Compose-Datei aus backend.compose |
gelesen |
backend/images.lock.json |
gelesen, geschrieben, wenn sie sich geändert hat |
Exit-Codes
Abschnitt betitelt „Exit-Codes“| Code | Wann |
|---|---|
| 0 | Der Lock ist geschrieben oder aktuell. Auch wenn die App kein Backend hat: The app has no backend; there is nothing to lock. |
| 1 | pithyx.json fehlt oder ist ungültig (es gibt die Fehler und The project is not valid; there is nothing to lock. aus), eine Registry scheitert oder verweigert den Zugriff, oder ein Image hat weder ein amd64- noch ein arm64-Image. |
| 2 | Mehr als ein Projektordner. |
Befunde
Abschnitt betitelt „Befunde“lock meldet selbst keine Befunde; starte pithyx validate, um zu sehen, warum ein Manifest ungültig ist.
Beispiele
Abschnitt betitelt „Beispiele“pithyx lockpithyx validate # prüft den neuen Lock gegen die Compose-Datei