version: '3.8' services: frontend: build: context: ./frontend dockerfile: Dockerfile container_name: nextjs-app ports: - "3000:3000" environment: - NODE_ENV=development - NEXT_PUBLIC_API_URL=/backend/api volumes: - ./frontend:/app - /app/node_modules depends_on: - backend networks: - app-network backend: build: context: ./backend dockerfile: Dockerfile container_name: nestjs-app ports: - "4000:4000" environment: - NODE_ENV=development - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB} - POSTGRES_HOST=postgres - REDIS_URL=redis://redis:6379 - REDIS_HOST=redis volumes: - ./backend:/app - /app/node_modules depends_on: - postgres - redis networks: - app-network postgres: image: postgres:15-alpine container_name: postgres-db ports: - "5431:5432" environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} volumes: - postgres_data:/var/lib/postgresql/data networks: - app-network redis: image: redis:7-alpine container_name: redis-cache ports: - "6379:6379" volumes: - redis_data:/data networks: - app-network # nginx: # image: nginx:alpine # container_name: nginx-proxy # ports: # - "80:80" # - "443:443" # volumes: # - ./nginx/nginx.conf:/etc/nginx/nginx.conf # - ./nginx/ssl:/etc/nginx/ssl # depends_on: # - frontend # - backend # networks: # - app-network volumes: postgres_data: redis_data: networks: app-network: driver: bridge