pithyx pack
pithyx pack führt die Prüfungen von pithyx validate aus und schreibt, wenn es keinen Fehler gibt, das App-Paket <id>-<version>.pithyxapp: ein gzip-komprimiertes tar-Archiv, das du im Store installierst oder in einem Katalog veröffentlichst. Dieselben Dateien ergeben immer dieselben Bytes.
pithyx pack [project folder] [--frontend <folder>] [--out <path>] [--images]Optionen
Abschnitt betitelt „Optionen“| Option | Wert | Typ | Standard | Beschreibung |
|---|---|---|---|---|
--frontend |
<folder> |
string | dist |
The built frontend |
--out |
<path> |
string | the project | The package file, or a folder for it |
--images |
– | boolean | aus | Add backend/images/<arch>/<id>.tar for offline installs, saved with the local docker (save, or pull first, per architecture of the lock). Needs Docker with access to the registries; the images make the package large, and their bytes depend on Docker’s save format. |
Ein --out, das auf .pithyxapp endet, ist die Paketdatei selbst; alles andere ist ein Ordner, der <id>-<version>.pithyxapp bekommt. Ein Ordner, den es noch nicht gibt, wird angelegt, auch der Ordner eines .pithyxapp-Pfads.
Das Paket
Abschnitt betitelt „Das Paket“- Zuerst
pithyx.jsonundicon.svg, dann jeder andere Pfad nach Code-Einheiten sortiert. frontend/mit jeder Datei des gebauten Frontends außer versteckten.README.md,README,LICENSE,LICENSE.md,LICENSE.txt, wenn sie im Projektordner liegen.- Mit Backend: seine Compose-Datei und
backend/images.lock.json. CHECKSUMS: der SHA-256 jeder anderen Datei im Format vonsha256sum, sodasssha256sum -c CHECKSUMSein entpacktes Paket prüft.- Mit
--images:backend/images/<arch>/<image id>.tarfür jedes Image und jede Architektur des Locks. Jedes Image wird mitdocker saveaus deinem Docker gespeichert, wenn es dort liegt (Images vonpithyx build): über seine Image-ID beim klassischen Image-Store, über seinen Manifest-Digest beim containerd-Image-Store (Standard seit Docker 29), mit--platform, wo Docker es kennt. Jedes andere Image wird zuerst mitdocker pull --platformüber seinen Digest geholt; ein Image vonpithyx build(pithyx.local/...) wird nie geholt. Das gespeicherte Archiv muss die Image-Konfiguration des Locks enthalten. Klappt nichts, nennt der Fehler jeden Versuch. Die Archive machen das Paket groß, und ihre Bytes hängen vom Speicherformat von Docker ab.
Feste Modi, Besitzer und Zeiten und keine Zeit im gzip-Header machen das Archiv deterministisch.
Dateien
Abschnitt betitelt „Dateien“| Datei | Zugriff |
|---|---|
alles, was validate liest |
gelesen |
das Paket (Standard <project>/<id>-<version>.pithyxapp) |
geschrieben, ersetzt, wenn vorhanden |
ein temporärer Ordner pithyx-images-* |
hält mit --images die gespeicherten Images, danach entfernt |
Exit-Codes
Abschnitt betitelt „Exit-Codes“| Code | Wann |
|---|---|
| 0 | Gepackt: Packed <path> (<n> bytes). |
| 1 | Ein Befund der Stufe Fehler (Not packed: fix the errors above first.), keine gültige pithyx.json, oder Docker scheitert mit --images. |
| 2 | --out ist weder eine .pithyxapp-Datei noch ein Ordner, --images für eine App ohne Backend oder ohne gültigen Lock, oder mehr als ein Projektordner. |
Befunde
Abschnitt betitelt „Befunde“Dieselben wie bei pithyx validate; siehe Befunde.
Beispiele
Abschnitt betitelt „Beispiele“pithyx pack # ./com.example.notes-1.0.0.pithyxapppithyx pack --out dist-packages/ # in einen Ordner, bei Bedarf angelegtpithyx pack --out notes.pithyxapp # ein eigener Dateinamepithyx pack --images # mit den Backend-Images für Offline-Installationen