Repository navigation
Expand file tree
/
Copy pathdocker-compose.split.yml
More file actions
63 lines (61 loc) · 2.22 KB
/
Copy pathdocker-compose.split.yml
File metadata and controls
63 lines (61 loc) · 2.22 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# =============================================================================
# FastDataUpload - Zwei-Container-Variante (Backend API + Nginx Web)
# -----------------------------------------------------------------------------
# Alternative zur Standard-Einzel-Image-Variante (siehe docker-compose.yml).
# Hier laufen zwei getrennte Images, die lokal aus dem Quellcode gebaut werden:
#
# docker compose -f docker-compose.split.yml up -d --build
#
# Nginx liefert die SPA aus und proxied /api an den Backend-Container.
# Sinnvoll, wenn z. B. ein bestehender Nginx-Aufbau weiterverwendet werden soll
# oder Frontend und Backend unabhängig gebaut/aktualisiert werden sollen.
# =============================================================================
services:
backend:
build:
context: ./backend
dockerfile: Dockerfile
image: fastdataupload-backend:latest
container_name: fastdataupload-backend
restart: unless-stopped
environment:
NODE_ENV: production
# Laufzeit-Konfiguration für das Frontend (kein Rebuild nötig)
APP_URL: ${APP_URL:-}
APP_NAME: ${APP_NAME:-FastDataUpload}
PORT: ${PORT:-3001}
TOKEN_EXPIRY_MINUTES: ${TOKEN_EXPIRY_MINUTES:-10}
MAX_FILE_SIZE_MB: ${MAX_FILE_SIZE_MB:-50}
MAX_FILES_PER_REQUEST: ${MAX_FILES_PER_REQUEST:-20}
UPLOAD_DIR: ${UPLOAD_DIR:-/app/uploads}
CORS_ORIGIN: ${CORS_ORIGIN:-}
# true = die App wird über https erreicht (Secure-Context-Header werden
# ausgeliefert). Bei reinem http-Zugriff false lassen!
HTTPS_ENABLED: ${HTTPS_ENABLED:-false}
volumes:
# Persistent volume mount for uploaded files
- ./uploads:/app/uploads
expose:
- "${PORT:-3001}"
networks:
- fastdataupload
web:
build:
context: ./frontend
dockerfile: Dockerfile
args:
# Build-time variables baked into the static bundle
VITE_APP_URL: ${VITE_APP_URL:-}
VITE_APP_NAME: ${VITE_APP_NAME:-FastDataUpload}
image: fastdataupload-web:latest
container_name: fastdataupload-web
restart: unless-stopped
depends_on:
- backend
ports:
- "${WEB_PORT:-8080}:80"
networks:
- fastdataupload
networks:
fastdataupload:
driver: bridge