# docker-compose.dev.yml (Cho Local Development) version: '3.8' services: api: build: context: . dockerfile: Dockerfile.dev # Sử dụng Dockerfile.dev container_name: ulflow-api-dev ports: - "3000:3000" volumes: - .:/app # Bind mount code cho hot reload - go-modules:/go/pkg/mod command: air # Chạy công cụ hot reload env_file: - ./.env # Load biến môi trường từ file .env depends_on: - postgres networks: - ulflow-network restart: "no" # Không tự động restart trong dev postgres: image: postgres:15-alpine container_name: ulflow-postgres-dev restart: unless-stopped environment: # Lấy biến từ file .env POSTGRES_USER: ${DATABASE_USERNAME} POSTGRES_PASSWORD: ${DATABASE_PASSWORD} POSTGRES_DB: ${DATABASE_NAME} ports: - "5432:5432" # Để truy cập từ host nếu muốn volumes: - postgres-dev-data:/var/lib/postgresql/data # Volume riêng cho dev DB networks: - ulflow-network adminer: # Adminer cũng nên có trong dev để quản lý DB dễ dàng image: adminer:latest container_name: ulflow-adminer-dev restart: unless-stopped ports: - "8080:8080" environment: ADMINER_DEFAULT_SERVER: postgres # Tên service của postgres trong compose này depends_on: - postgres networks: - ulflow-network volumes: postgres-dev-data: # Volume riêng cho dev DB go-modules: # Volume để cache Go modules cho dev networks: ulflow-network: driver: bridge