59 lines
1.6 KiB
YAML
59 lines
1.6 KiB
YAML
# 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 |