Files
asset_helper/backend/docker-compose.dev.yml

92 lines
1.9 KiB
YAML

version: '3.8'
networks:
backend-network:
driver: bridge
services:
# Nginx 网关
nginx:
container_name: backend-nginx
image: nginx:1.25-alpine
ports:
- "8080:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- gateway
networks:
- backend-network
# 网关服务
gateway:
container_name: backend-gateway
build:
context: .
dockerfile: ./gateway/Dockerfile
ports:
- "8000:8000"
volumes:
- ./gateway/cmd:/app/cmd
- ./gateway/internal:/app/internal
- ./shared:/shared
depends_on:
- user-svc
- redis
networks:
- backend-network
# 用户服务
user-svc:
container_name: backend-user-svc
build:
context: .
dockerfile: ./services/user-svc/Dockerfile
ports:
- "9000:9000"
volumes:
- ./services/user-svc/cmd:/app/cmd
- ./services/user-svc/internal:/app/internal
- ./services/user-svc/proto:/app/proto
- ./shared:/shared
depends_on:
postgres:
condition: service_healthy
networks:
- backend-network
# 数据库
postgres:
container_name: backend-postgres
image: postgres:18.3-alpine3.23
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: password
POSTGRES_DB: backend
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
- ./services/user-svc/migrations:/docker-entrypoint-initdb.d
networks:
- backend-network
healthcheck:
test: ["CMD-SHELL", "pg_isready -U admin -d backend"]
interval: 5s
timeout: 5s
retries: 5
# Redis
redis:
container_name: backend-redis
image: redis:8.6.2-alpine
ports:
- "6379:6379"
volumes:
- redis-data:/var/lib/redis/data
networks:
- backend-network
volumes:
postgres-data:
redis-data: