docker compose
This commit is contained in:
parent
8113206e90
commit
39b579ea4e
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue