diff --git a/bizmatch-server/docker-compose.yml b/bizmatch-server/docker-compose.yml new file mode 100644 index 0000000..95d2f1e --- /dev/null +++ b/bizmatch-server/docker-compose.yml @@ -0,0 +1,49 @@ +# ~/git/bizmatch-project/bizmatch-server/docker-compose.yml +services: + app: + image: node:22-alpine + container_name: bizmatch-app-prod + working_dir: /app + volumes: + - ./:/app # Code liegt hier direkt im Ordner der Compose + ports: + - "3001:3000" # Host 3001 -> Container 3000 + env_file: + - path: ./env.prod + required: true + environment: + - NODE_ENV=production # Prod-Modus (vorher stand fälschlich "development") + - DB_HOST=postgres-prod + - DB_PORT=5432 + - DB_NAME=${POSTGRES_DB} + - DB_USER=${POSTGRES_USER} + - DB_PASSWORD=${POSTGRES_PASSWORD} + # Hinweis: npm ci nutzt package-lock.json; falls nicht vorhanden, nimm "npm install" + command: sh -c "npm ci && npm run build && node dist/src/main.js" + restart: unless-stopped + depends_on: + - postgres-prod + networks: + - bizmatch-prod + + postgres-prod: + container_name: bizmatchdb-prod + image: postgres:17-alpine # Version pinnen ist stabiler als "latest" + restart: unless-stopped + volumes: + - ./bizmatchdb-data-prod:/var/lib/postgresql/data # Daten liegen im Server-Repo + env_file: + - path: ./env.prod + required: true + environment: + POSTGRES_DB: ${POSTGRES_DB} + POSTGRES_USER: ${POSTGRES_USER} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} + ports: + - "5433:5432" # Host 5433 -> Container 5432 + networks: + - bizmatch-prod + +networks: + bizmatch-prod: + external: true # einmalig anlegen: docker network create bizmatch-prod