# 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
Layer, Python-Code, Packages] 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.