61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# Deployment
|
|
## Quellcode
|
|
Der Quellcode ist auf Gitea unter https://gitea.psi.ch/data-catalog-services/ArchiveCostWebapp zu finden.
|
|
Verwende git-Hilfsmittel, wenn du daran etwas ändern möchtest.
|
|
|
|
## Container-Images
|
|
Wie der/die Container-Images gebaut werden, wird im docker-compose.yml File beschrieben. Da es zwei Images braucht
|
|
sind folgende Kommandos auszuführen:
|
|
|
|
```bash
|
|
# Git Hash holen
|
|
GIT_SHA=$(git rev-parse --short HEAD)
|
|
|
|
# Build mit ZWEI Tags (-t) ausführen
|
|
docker buildx build --platform linux/amd64 \
|
|
-t gitea.psi.ch/data-catalog-services/archivecostwebapp-logic:$GIT_SHA \
|
|
-t gitea.psi.ch/data-catalog-services/archivecostwebapp-logic:latest \
|
|
--push ./logic
|
|
|
|
docker buildx build --platform linux/amd64 \
|
|
-t gitea.psi.ch/data-catalog-services/archivecostwebapp-analytics:$GIT_SHA \
|
|
-t gitea.psi.ch/data-catalog-services/archivecostwebapp-analytics:latest \
|
|
--push ./analytics
|
|
```
|
|
Auf gitea findet man die Images unter https://gitea.psi.ch/data-catalog-services -> Packages
|
|
Jedes Image wird jeweils nur einmal in die Registry geladen.
|
|
|
|
Das folgende Diagramm verdeutlicht, wie Gitea mit mehreren Tags umgeht. Die eigentlichen Image-Daten werden nur
|
|
einmal auf den Server übertragen:
|
|
|
|
```mermaid
|
|
graph TD
|
|
Mac[💻 Dein Mac/PC]
|
|
|
|
subgraph Gitea [Gitea Container Registry]
|
|
direction TB
|
|
TagLatest[🏷️ Tag: latest]
|
|
TagHash[🏷️ Tag: a1b2c3d]
|
|
ImageData[📦 Image-Daten <br><i>Layer, Python-Code, Packages</i>]
|
|
end
|
|
|
|
Mac -->|1. Lädt Daten einmalig hoch| ImageData
|
|
TagLatest -->|2. Verweist auf| ImageData
|
|
TagHash -->|3. Verweist auf| ImageData
|
|
|
|
style Gitea fill:#f9f9f9,stroke:#333,stroke-width:2px
|
|
style ImageData fill:#e1f5fe,stroke:#0288d1,stroke-width:2px
|
|
style TagLatest fill:#fff9c4,stroke:#fbc02d,stroke-width:1px
|
|
style TagHash fill:#fff9c4,stroke:#fbc02d,stroke-width:1px
|
|
```
|
|
|
|
## Dokumentation
|
|
Es wird `properdocs` für die Erstellung der Dokumentation verwendet. Das Erzeugen einer lokalen
|
|
Dokumentation (welche im Verzeichnis site/ landen würde) ist dabei nicht notwendig. Benutze
|
|
`properdocs serve` um lokal, während des Schreibens der Dokumentation, die Änderungen anzuschauen.
|
|
|
|
Beim Deployen wird auf gitea der in .gitea/workflows/publish.yaml beschriebene Workflow getriggert.
|
|
Dieser erstellt die statische Dokumentation (wie im properdocs.yml beschrieben) welche dann unter
|
|
https://data-catalog-services.pages.psi.ch/ArchiveCostWebapp/ angeschaut werden kann.
|
|
|