docs(deploy): Multi-Stage-Build korrekt beschrieben, SSL-Variablen-Hinweis ergaenzt
Die Deploy-Anleitung sagte irrefuehrend "gesamter Code (Python + TypeScript)" im Image. Korrigiert auf den tatsaechlichen Multi-Stage-Build: nur das fertige JS-Bundle landet im NGINX-Image, nicht der TS-Quellcode. Zussaetzlich Hinweis in env-sample und Deployment-Anleitung, dass NGINX_CERTS/CERT/CERT_KEY auch bei SSL=false nicht geloescht werden duerfen, da docker-compose.base.yaml sie immer als Volume/Env bindet. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
b268b301c1
commit
fffa9d4a28
2 files changed
+24
-5
No files matched your search
@@ -35,8 +35,11 @@ eingerichtet und betrieben wird.
|
||||
Test-Server aus (Stufe 1).
|
||||
- Nach erfolgreicher Verifikation wird manuell auf den Prod-Server
|
||||
deployt (Stufe 2).
|
||||
- In Prod wird der gesamte Code (Python + TypeScript) in das Docker-Image
|
||||
gebaut. Es wird kein Node.js, npm oder Python-venv auf dem Server benoetigt.
|
||||
- In Prod wird der Python-Code in das App-Image kopiert. Der TypeScript-Quellcode
|
||||
wird waehrend des Docker-Builds in einer Multi-Stage-Build-Stage kompiliert
|
||||
(tsc + rollup); in das finale NGINX-Image wird nur das fertige JS-Bundle
|
||||
uebernommen, nicht der TypeScript-Quellcode. Es wird kein Node.js, npm oder
|
||||
Python-venv auf dem Server benoetigt.
|
||||
- Der Deploy-Server benoetigt nur: `git`, `docker` und `docker compose`.
|
||||
|
||||
---
|
||||
@@ -126,6 +129,11 @@ NGINX_HOST_PORT=8443 # eigener Port fuer Test-Prod
|
||||
NGINX_SERVER_NAME=test.kbp_crm.mylocal.de
|
||||
# NGINX_STATIC_DIR und NGINX_CONFIG_TEMPLATE_DIR werden in Prod nicht
|
||||
# benoetigt (statische Dateien und Templates sind im Image).
|
||||
# WICHTIG: Auch bei NGINX_USE_SSL=false duerfen NGINX_CERTS, NGINX_CERT und
|
||||
# NGINX_CERT_KEY NICHT geloescht werden. docker-compose.base.yaml bindet
|
||||
# ${NGINX_CERTS} immer als Volume (/etc/certs) ein — ein fehlender Wert
|
||||
# fuehrt zu einem Compose-Fehler. Bei SSL=false reicht es, Platzhalterwerte
|
||||
# zu setzen (z.B. NGINX_CERTS auf ein beliebiges Verzeichnis zeigen lassen).
|
||||
NGINX_CERTS=/opt/kbcrm/test-prod/certs # Pfad zu SSL-Zertifikaten
|
||||
NGINX_CERT=test-wildcard.mylocal.crt
|
||||
NGINX_CERT_KEY=test-wildcard.mylocal.key
|
||||
@@ -153,6 +161,8 @@ NGINX_SERVER_NAME=kbp_crm.mylocal.de
|
||||
NGINX_CERTS=/opt/kbcrm/prod/certs
|
||||
NGINX_CERT=wildcard.mylocal.crt
|
||||
NGINX_CERT_KEY=wildcard.mylocal.key
|
||||
# Auch hier gilt: Bei NGINX_USE_SSL=false die Zertifikats-Variablen nicht
|
||||
# loeschen, sondern Platzhalterwerte stehen lassen (s. Hinweis oben).
|
||||
|
||||
PYTHON_DB_DIR=/opt/kbcrm/prod/data # eigene DB fuer Prod
|
||||
|
||||
@@ -393,9 +403,9 @@ docker image prune -f
|
||||
| `NGINX_USE_SSL` | ja | SSL aktivieren (true/false) |
|
||||
| `NGINX_HOST_PORT` | ja | Externer Port (443 fuer SSL, 8080 fuer no-SSL) |
|
||||
| `NGINX_SERVER_NAME` | ja | Server-Name fuer NGINX-Konfiguration |
|
||||
| `NGINX_CERTS` | ja | Pfad zu SSL-Zertifikaten (bind-mount) |
|
||||
| `NGINX_CERT` | ja | Zertifikatsdatei |
|
||||
| `NGINX_CERT_KEY` | ja | Privater Schluessel |
|
||||
| `NGINX_CERTS` | ja | Pfad zu SSL-Zertifikaten (bind-mount). Auch bei SSL=false erforderlich — Compose bindet diesen Pfad immer als Volume ein |
|
||||
| `NGINX_CERT` | ja | Zertifikatsdatei. Bei SSL=false nicht verwendet, darf aber nicht geloescht werden (Platzhalter reicht) |
|
||||
| `NGINX_CERT_KEY` | ja | Privater Schluessel. Bei SSL=false nicht verwendet, darf aber nicht geloescht werden (Platzhalter reicht) |
|
||||
| `NGINX_STATIC_DIR` | nein | Nur in Dev; in Prod im Image |
|
||||
| `NGINX_CONFIG_TEMPLATE_DIR` | nein | Nur in Dev; in Prod im Image |
|
||||
| `PYTHON_DB_DIR` | ja | Pfad zu SQLite-Datenbanken (bind-mount) |
|
||||
|
||||
Reference in new issue
Block a user