erp-suite/apps/products/pos-micro/docker-compose.yml

74 lines
1.6 KiB
YAML

version: '3.8'
services:
# PostgreSQL Database
postgres:
image: postgres:15-alpine
container_name: pos-micro-db
environment:
POSTGRES_USER: pos_micro
POSTGRES_PASSWORD: pos_micro_secret
POSTGRES_DB: pos_micro_db
ports:
- "5433:5432"
volumes:
- pos_micro_data:/var/lib/postgresql/data
- ./database/ddl:/docker-entrypoint-initdb.d:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U pos_micro -d pos_micro_db"]
interval: 10s
timeout: 5s
retries: 5
networks:
- pos-micro-network
# Backend API (NestJS)
backend:
build:
context: ./backend
dockerfile: Dockerfile
container_name: pos-micro-api
environment:
NODE_ENV: development
PORT: 3071
DB_HOST: postgres
DB_PORT: 5432
DB_USERNAME: pos_micro
DB_PASSWORD: pos_micro_secret
DB_DATABASE: pos_micro_db
DB_SCHEMA: pos_micro
JWT_SECRET: pos-micro-jwt-secret-change-in-production
JWT_EXPIRES_IN: 24h
JWT_REFRESH_EXPIRES_IN: 7d
ports:
- "3071:3071"
depends_on:
postgres:
condition: service_healthy
volumes:
- ./backend/src:/app/src:ro
networks:
- pos-micro-network
# Frontend PWA (Vite + React)
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
container_name: pos-micro-web
environment:
VITE_API_URL: http://localhost:3071/api/v1
ports:
- "5173:5173"
volumes:
- ./frontend/src:/app/src:ro
networks:
- pos-micro-network
volumes:
pos_micro_data:
networks:
pos-micro-network:
driver: bridge