docker compose

This commit is contained in:
Andreas Knuth 2025-11-09 16:10:49 -06:00
parent 8113206e90
commit 39b579ea4e
3 changed files with 18 additions and 22 deletions

View File

@ -2,38 +2,34 @@
services: services:
app: app:
image: node:22-alpine image: node:22-alpine
container_name: bizmatch-app-prod container_name: bizmatch-app
working_dir: /app working_dir: /app
volumes: volumes:
- ./:/app # Code liegt hier direkt im Ordner der Compose - ./:/app # Code liegt hier direkt im Ordner der Compose
ports: ports:
- '3001:3000' # Host 3001 -> Container 3000 - '3001:3000' # Host 3001 -> Container 3000
env_file: env_file:
- path: ./env.prod - path: ./.env
required: true required: true
environment: environment:
- NODE_ENV=development # Prod-Modus (vorher stand fälschlich "development") - NODE_ENV=development # Prod-Modus (vorher stand fälschlich "development")
- DB_HOST=postgres-prod - DATABASE_URL
- 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" # 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" command: sh -c "npm ci && npm run build && node dist/src/main.js"
restart: unless-stopped restart: unless-stopped
depends_on: depends_on:
- postgres-prod - postgres
networks: networks:
- bizmatch-prod - bizmatch
postgres-prod: postgres:
container_name: bizmatchdb-prod container_name: bizmatchdb
image: postgres:17-alpine # Version pinnen ist stabiler als "latest" image: postgres:17-alpine # Version pinnen ist stabiler als "latest"
restart: unless-stopped restart: unless-stopped
volumes: volumes:
- ./bizmatchdb-data-prod:/var/lib/postgresql/data # Daten liegen im Server-Repo - ${PWD}/bizmatchdb-data:/var/lib/postgresql/data # Daten liegen im Server-Repo
env_file: env_file:
- path: ./env.prod - path: ./.env
required: true required: true
environment: environment:
POSTGRES_DB: ${POSTGRES_DB} POSTGRES_DB: ${POSTGRES_DB}
@ -42,8 +38,8 @@ services:
ports: ports:
- '5433:5432' # Host 5433 -> Container 5432 - '5433:5432' # Host 5433 -> Container 5432
networks: networks:
- bizmatch-prod - bizmatch
networks: networks:
bizmatch-prod: bizmatch:
external: true # einmalig anlegen: docker network create bizmatch-prod external: true # einmalig anlegen: docker network create bizmatch-prod

View File

@ -16,13 +16,13 @@ const { Pool } = pkg;
inject: [ConfigService, WINSTON_MODULE_PROVIDER, ClsService], inject: [ConfigService, WINSTON_MODULE_PROVIDER, ClsService],
useFactory: async (configService: ConfigService, logger: Logger, cls: ClsService) => { useFactory: async (configService: ConfigService, logger: Logger, cls: ClsService) => {
const connectionString = configService.get<string>('DATABASE_URL'); const connectionString = configService.get<string>('DATABASE_URL');
const dbHost = configService.get<string>('DB_HOST'); // const dbHost = configService.get<string>('DB_HOST');
const dbPort = configService.get<string>('DB_PORT'); // const dbPort = configService.get<string>('DB_PORT');
const dbName = configService.get<string>('DB_NAME'); // const dbName = configService.get<string>('DB_NAME');
const dbUser = configService.get<string>('DB_USER'); // const dbUser = configService.get<string>('DB_USER');
const dbPassword = configService.get<string>('DB_PASSWORD'); const dbPassword = configService.get<string>('DB_PASSWORD');
logger.info(`Drizzle Connection - URL: ${connectionString}, Host: ${dbHost}, Port: ${dbPort}, DB: ${dbName}, User: ${dbUser}`); // logger.info(`Drizzle Connection - URL: ${connectionString}, Host: ${dbHost}, Port: ${dbPort}, DB: ${dbName}, User: ${dbUser}`);
console.log(`---> Drizzle Connection - URL: ${connectionString}, Host: ${dbHost}, Port: ${dbPort}, DB: ${dbName}, User: ${dbUser}`); // console.log(`---> Drizzle Connection - URL: ${connectionString}, Host: ${dbHost}, Port: ${dbPort}, DB: ${dbName}, User: ${dbUser}`);
const pool = new Pool({ const pool = new Pool({
connectionString, connectionString,
// ssl: true, // Falls benötigt // ssl: true, // Falls benötigt

View File

@ -1,6 +1,6 @@
{ {
"/bizmatch": { "/bizmatch": {
"target": "http://localhost:3000", "target": "http://localhost:3001",
"secure": false, "secure": false,
"changeOrigin": true, "changeOrigin": true,
"logLevel": "debug" "logLevel": "debug"