Files
ArchiveCostWebapp/docs/03_deployment.md
T
huesser 9454860a41
Build and Publish Site / docker (push) Successful in 22s
Arbeit an der Dokumentation: "Deployment" Teil ziemlich fertig.
2026-07-01 16:39:24 +02:00

2.4 KiB

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:

# 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:

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.