| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- # ============================================================
- # 开发环境 Docker Compose — 仅基础设施
- # 用途: 本地开发时启动依赖服务,应用服务通过 IDE 本地运行
- # 启动: docker compose -f docker-compose.dev.yml up -d
- # ============================================================
-
- services:
- postgres:
- image: postgis/postgis:16-3.4
- container_name: wm-postgres-dev
- restart: unless-stopped
- environment:
- POSTGRES_DB: ${POSTGRES_DB:-water_management}
- POSTGRES_USER: ${POSTGRES_USER:-water}
- POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-water123}
- ports:
- - "5432:5432"
- volumes:
- - pgdata-dev:/var/lib/postgresql/data
- - ./sql:/docker-entrypoint-initdb.d:ro
- healthcheck:
- test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-water}"]
- interval: 10s
- timeout: 5s
- retries: 5
-
- redis:
- image: redis:7-alpine
- container_name: wm-redis-dev
- restart: unless-stopped
- ports:
- - "6379:6379"
- command: redis-server --requirepass ${REDIS_PASSWORD:-water123}
- volumes:
- - redisdata-dev:/data
- healthcheck:
- test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-water123}", "ping"]
- interval: 10s
- timeout: 3s
- retries: 5
-
- emqx:
- image: emqx/emqx:5.7.2
- container_name: wm-emqx-dev
- restart: unless-stopped
- ports:
- - "1883:1883"
- - "8083:8083"
- - "18083:18083"
- environment:
- EMQX_DASHBOARD__DEFAULT_USERNAME: admin
- EMQX_DASHBOARD__DEFAULT_PASSWORD: public
- volumes:
- - emqxdata-dev:/opt/emqx/data
- healthcheck:
- test: ["CMD", "emqx", "ping"]
- interval: 10s
- timeout: 5s
- retries: 5
-
- nacos:
- image: nacos/nacos-server:v2.3.2
- container_name: wm-nacos-dev
- restart: unless-stopped
- environment:
- MODE: standalone
- PREFER_HOST_MODE: hostname
- ports:
- - "8848:8848"
- - "9848:9848"
- volumes:
- - nacosdata-dev:/home/nacos/data
- healthcheck:
- test: ["CMD-SHELL", "curl -sf http://localhost:8848/nacos/v1/console/health/readiness"]
- interval: 15s
- timeout: 5s
- retries: 5
-
- minio:
- image: minio/minio:latest
- container_name: wm-minio-dev
- restart: unless-stopped
- ports:
- - "9000:9000"
- - "9001:9001"
- environment:
- MINIO_ROOT_USER: minioadmin
- MINIO_ROOT_PASSWORD: minioadmin
- volumes:
- - miniodata-dev:/data
- command: server /data --console-address ":9001"
- healthcheck:
- test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
- interval: 10s
- timeout: 5s
- retries: 5
-
- volumes:
- pgdata-dev:
- redisdata-dev:
- emqxdata-dev:
- nacosdata-dev:
- miniodata-dev:
|