Files
pos-system/microservices/infra/docker/docker-compose.dev.yml
Ho Ngoc Hai 76d75c753b Migrate
2026-05-23 18:37:02 +07:00

151 lines
3.6 KiB
YAML

# EN: Development Docker Compose - Shared network and volumes
# VI: Development Docker Compose - Network và volumes dùng chung
version: '3.8'
networks:
microservices-network:
driver: bridge
volumes:
postgres_data:
redis_data:
minio_data:
services:
# EN: Traefik Reverse Proxy
# VI: Traefik Reverse Proxy
traefik:
image: traefik:v3.0
container_name: traefik
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--providers.file.directory=/etc/traefik/dynamic"
- "--providers.file.watch=true"
- "--entrypoints.web.address=:80"
- "--log.level=INFO"
ports:
- "80:80"
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ../traefik/dynamic:/etc/traefik/dynamic:ro
networks:
- microservices-network
# EN: Redis Cache
# VI: Redis Cache
redis:
image: redis:7-alpine
container_name: redis
ports:
- "6379:6379"
volumes:
- redis_data:/data
networks:
- microservices-network
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 3
# EN: MinIO Object Storage
# VI: MinIO Object Storage
minio:
image: minio/minio:latest
container_name: minio
ports:
- "9000:9000"
- "9001:9001"
environment:
MINIO_ROOT_USER: minioadmin
MINIO_ROOT_PASSWORD: minioadmin
volumes:
- minio_data:/data
command: server /data --console-address ":9001"
networks:
- microservices-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 10s
retries: 3
# EN: IAM Service
# VI: IAM Service
iam-service-net:
build:
context: ../../services/iam-service-net
dockerfile: Dockerfile
container_name: iam-service-net
environment:
- ASPNETCORE_ENVIRONMENT=Development
networks:
- microservices-network
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
# EN: Storage Service
# VI: Storage Service
storage-service-net:
build:
context: ../../services/storage-service-net
dockerfile: Dockerfile
container_name: storage-service-net
environment:
- ASPNETCORE_ENVIRONMENT=Development
networks:
- microservices-network
depends_on:
- minio
- redis
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
# EN: Membership Service
# VI: Membership Service
membership-service-net:
build:
context: ../../services/membership-service-net
dockerfile: Dockerfile
container_name: membership-service-net
environment:
- ASPNETCORE_ENVIRONMENT=Development
networks:
- microservices-network
depends_on:
- redis
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3
# EN: Merchant Service
# VI: Merchant Service
merchant-service-net:
build:
context: ../../services/merchant-service-net
dockerfile: Dockerfile
container_name: merchant-service-net
environment:
- ASPNETCORE_ENVIRONMENT=Development
networks:
- microservices-network
depends_on:
- redis
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
interval: 30s
timeout: 10s
retries: 3