|
|
@@ -6,9 +6,11 @@ services:
|
|
|
build:
|
|
|
context: ./frontend
|
|
|
dockerfile: Dockerfile
|
|
|
+ container_name: ems-wsl-nginx
|
|
|
ports: ["80:80", "443:443"]
|
|
|
volumes:
|
|
|
- ./configs/nginx/conf.d:/etc/nginx/conf.d
|
|
|
+ - ./frontend/dist:/usr/share/nginx/html # 开发环境挂载 dist,方便查看构建结果
|
|
|
depends_on:
|
|
|
app-server:
|
|
|
condition: service_started
|
|
|
@@ -18,6 +20,7 @@ services:
|
|
|
build:
|
|
|
context: ./backend
|
|
|
dockerfile: Dockerfile
|
|
|
+ container_name: ems-wsl-backend
|
|
|
restart: always
|
|
|
healthcheck:
|
|
|
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:8080/ping"]
|
|
|
@@ -25,49 +28,58 @@ services:
|
|
|
timeout: 5s
|
|
|
retries: 5
|
|
|
environment:
|
|
|
- - DB_DSN=host=postgres user=${POSTGRES_USER} password=${DB_PASSWORD} dbname=${POSTGRES_DB} port=${POSTGRES_PORT} sslmode=disable TimeZone=Asia/Shanghai
|
|
|
- - TD_DSN=root:taosdata@http(${TD_HOST}:6041)/power_db
|
|
|
- - REDIS_ADDR=${REDIS_HOST}:${REDIS_PORT}
|
|
|
- - POSTGRES_USER=${POSTGRES_USER}
|
|
|
- - POSTGRES_PASSWORD=${DB_PASSWORD}
|
|
|
- - POSTGRES_DB=${POSTGRES_DB}
|
|
|
- - POSTGRES_HOST=${POSTGRES_HOST}
|
|
|
- - POSTGRES_PORT=${POSTGRES_PORT}
|
|
|
- - JWT_SECRET=${JWT_SECRET}
|
|
|
- - JWT_EXPIRE_HOURS=${JWT_EXPIRE_HOURS}
|
|
|
+ # --- 硬编码配置 (无需 .env) ---
|
|
|
+ - GIN_MODE=debug # 开发环境使用 debug 模式
|
|
|
+ - PORT=8080
|
|
|
+
|
|
|
+ # 数据库连接
|
|
|
+ - DB_DSN=host=postgres user=ems_user password=ems_pass dbname=ems_db port=5432 sslmode=disable TimeZone=Asia/Shanghai
|
|
|
+ - TD_DSN=root:taosdata@http(tdengine:6041)/power_db
|
|
|
+ - REDIS_ADDR=redis:6379
|
|
|
+
|
|
|
+ # 独立变量
|
|
|
+ - POSTGRES_USER=ems_user
|
|
|
+ - POSTGRES_PASSWORD=ems_pass
|
|
|
+ - POSTGRES_DB=ems_db
|
|
|
+ - POSTGRES_HOST=postgres
|
|
|
+ - POSTGRES_PORT=5432
|
|
|
+
|
|
|
+ # 安全配置
|
|
|
+ - JWT_SECRET=change_me_dev_secret
|
|
|
+ - JWT_EXPIRE_HOURS=24
|
|
|
- TZ=Asia/Shanghai
|
|
|
volumes:
|
|
|
- ./backend/logs:/app/logs
|
|
|
ports:
|
|
|
- - "${PORT}:8080"
|
|
|
+ - "8080:8080"
|
|
|
depends_on:
|
|
|
- postgres
|
|
|
- tdengine
|
|
|
- redis
|
|
|
|
|
|
- # 3. Database: PostgreSQL (Relational Data)
|
|
|
+ # 3. Database: PostgreSQL
|
|
|
postgres:
|
|
|
image: postgres:15-alpine
|
|
|
- container_name: ems-postgres
|
|
|
+ container_name: ems-wsl-postgres
|
|
|
restart: always
|
|
|
environment:
|
|
|
- POSTGRES_USER: ${POSTGRES_USER}
|
|
|
- POSTGRES_PASSWORD: ${DB_PASSWORD}
|
|
|
- POSTGRES_DB: ${POSTGRES_DB}
|
|
|
+ POSTGRES_USER: ems_user
|
|
|
+ POSTGRES_PASSWORD: ems_pass
|
|
|
+ POSTGRES_DB: ems_db
|
|
|
TZ: Asia/Shanghai
|
|
|
volumes:
|
|
|
- - pg_data:/var/lib/postgresql/data
|
|
|
+ - pg_data_wsl:/var/lib/postgresql/data
|
|
|
ports:
|
|
|
- - "5433:5432"
|
|
|
+ - "5433:5432" # 开发环境映射到 5433,避免与本地 PG 冲突
|
|
|
|
|
|
- # 4. Database: TDengine (Time-Series Data)
|
|
|
+ # 4. Database: TDengine
|
|
|
tdengine:
|
|
|
image: tdengine/tdengine:3.3.0.0
|
|
|
- container_name: ems-tdengine
|
|
|
+ container_name: ems-wsl-tdengine
|
|
|
hostname: tdengine
|
|
|
privileged: true
|
|
|
stop_grace_period: 2m
|
|
|
- ports: ["6030:6030"]
|
|
|
+ ports: ["6030:6030", "6041:6041"]
|
|
|
volumes:
|
|
|
- ./data/taos/data:/var/lib/taos
|
|
|
- ./data/taos/log:/var/log/taos
|
|
|
@@ -79,29 +91,29 @@ services:
|
|
|
# 5. Cache: Redis
|
|
|
redis:
|
|
|
image: redis:7-alpine
|
|
|
- container_name: ems-redis
|
|
|
+ container_name: ems-wsl-redis
|
|
|
ports: ["6379:6379"]
|
|
|
volumes:
|
|
|
- ./data/redis:/data
|
|
|
environment:
|
|
|
- TZ=Asia/Shanghai
|
|
|
|
|
|
- # 6. Message Broker: EMQX (MQTT)
|
|
|
+ # 6. Message Broker: EMQX
|
|
|
emqx:
|
|
|
image: emqx/emqx:5.3.0
|
|
|
+ container_name: ems-wsl-emqx
|
|
|
ports:
|
|
|
- "1883:1883" # MQTT TCP
|
|
|
- "8083:8083" # MQTT WebSocket
|
|
|
- "18083:18083" # Dashboard
|
|
|
- # volumes:
|
|
|
- # - ./configs/emqx:/opt/emqx/etc
|
|
|
environment:
|
|
|
- - EMQX_ALLOW_ANONYMOUS=true # For dev only
|
|
|
+ - EMQX_ALLOW_ANONYMOUS=true # 开发环境允许匿名
|
|
|
+ - EMQX_DASHBOARD__DEFAULT_USERNAME=admin
|
|
|
+ - EMQX_DASHBOARD__DEFAULT_PASSWORD=public
|
|
|
- TZ=Asia/Shanghai
|
|
|
|
|
|
-
|
|
|
volumes:
|
|
|
- pg_data:
|
|
|
+ pg_data_wsl:
|
|
|
driver: local
|
|
|
taos_data:
|
|
|
driver: local
|