Files
aiot-platform-cloud/docker-compose.core.yml
lzh b3948df69b
Some checks failed
Java CI with Maven / build (11) (push) Has been cancelled
Java CI with Maven / build (17) (push) Has been cancelled
Java CI with Maven / build (8) (push) Has been cancelled
feat: 添加 Jenkins CI/CD 配置和部署脚本
- 添加 Jenkinsfile 支持智能增量构建
- 添加 Docker 多阶段构建模板
- 添加 Docker Compose 配置(连接 1Panel 中间件)
- 添加部署、回滚、清理脚本
- 添加环境变量配置模板
2026-01-13 09:49:19 +08:00

204 lines
7.0 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

version: '3.8'
# ============================================
# AIOT Platform - 核心服务部署配置 (方案 A)
# 连接到 1Panel 已安装的中间件
# 总内存占用: ~4.5GB (仅应用服务)
# ============================================
networks:
aiot-network:
driver: bridge
volumes:
app-logs:
services:
# ============ 应用服务 ============
# 注意: 中间件MySQL, Redis, Nacos, RocketMQ已通过 1Panel 安装
# 应用服务通过环境变量配置连接到宿主机的中间件
viewsh-gateway:
image: ${REGISTRY_HOST}/viewsh-gateway:${IMAGE_TAG}
container_name: aiot-gateway
restart: unless-stopped
network_mode: host # 使用宿主机网络,直接访问 1Panel 中间件
environment:
JAVA_OPTS: "-Xms${GATEWAY_JVM_XMS} -Xmx${GATEWAY_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${GATEWAY_MEMORY_LIMIT}
cpus: '1.0'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48080/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}
viewsh-module-system-server:
image: ${REGISTRY_HOST}/viewsh-module-system-server:${IMAGE_TAG}
container_name: aiot-system-server
restart: unless-stopped
network_mode: host
environment:
JAVA_OPTS: "-Xms${SYSTEM_JVM_XMS} -Xmx${SYSTEM_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_PORT: ${MYSQL_PORT}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${SYSTEM_MEMORY_LIMIT}
cpus: '1.0'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48081/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}
viewsh-module-infra-server:
image: ${REGISTRY_HOST}/viewsh-module-infra-server:${IMAGE_TAG}
container_name: aiot-infra-server
restart: unless-stopped
network_mode: host
environment:
JAVA_OPTS: "-Xms${INFRA_JVM_XMS} -Xmx${INFRA_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_PORT: ${MYSQL_PORT}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${INFRA_MEMORY_LIMIT}
cpus: '1.0'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48082/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}
viewsh-module-iot-server:
image: ${REGISTRY_HOST}/viewsh-module-iot-server:${IMAGE_TAG}
container_name: aiot-iot-server
restart: unless-stopped
network_mode: host
environment:
JAVA_OPTS: "-Xms${IOT_SERVER_JVM_XMS} -Xmx${IOT_SERVER_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_PORT: ${MYSQL_PORT}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
ROCKETMQ_NAMESRV_ADDR: ${ROCKETMQ_NAMESRV_HOST}:${ROCKETMQ_NAMESRV_PORT}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${IOT_SERVER_MEMORY_LIMIT}
cpus: '1.5'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48083/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}
viewsh-module-iot-gateway:
image: ${REGISTRY_HOST}/viewsh-module-iot-gateway:${IMAGE_TAG}
container_name: aiot-iot-gateway
restart: unless-stopped
network_mode: host
environment:
JAVA_OPTS: "-Xms${IOT_GATEWAY_JVM_XMS} -Xmx${IOT_GATEWAY_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
ROCKETMQ_NAMESRV_ADDR: ${ROCKETMQ_NAMESRV_HOST}:${ROCKETMQ_NAMESRV_PORT}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${IOT_GATEWAY_MEMORY_LIMIT}
cpus: '1.5'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48084/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}
viewsh-module-ops-server:
image: ${REGISTRY_HOST}/viewsh-module-ops-server:${IMAGE_TAG}
container_name: aiot-ops-server
restart: unless-stopped
network_mode: host
environment:
JAVA_OPTS: "-Xms${OPS_JVM_XMS} -Xmx${OPS_JVM_XMX} ${JVM_COMMON_OPTS}"
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
MYSQL_HOST: ${MYSQL_HOST}
MYSQL_PORT: ${MYSQL_PORT}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
REDIS_HOST: ${REDIS_HOST}
REDIS_PORT: ${REDIS_PORT}
REDIS_PASSWORD: ${REDIS_PASSWORD}
TZ: ${TZ}
volumes:
- app-logs:/app/logs
deploy:
resources:
limits:
memory: ${OPS_MEMORY_LIMIT}
cpus: '0.5'
healthcheck:
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:48085/actuator/health"]
interval: ${HEALTH_CHECK_INTERVAL}
timeout: ${HEALTH_CHECK_TIMEOUT}
retries: ${HEALTH_CHECK_RETRIES}
start_period: ${HEALTH_CHECK_START_PERIOD}