refactor: 重构配置管理,移除.env依赖,使用docker-compose环境变量+Nacos配置中心
- 更新所有application-prod.yaml,将环境变量占位符替换为硬编码默认值 - 重写docker-compose.core.yml,使用Spring Boot环境变量命名规范 - 修复Jenkins pipeline中的getContainerName方法调用错误 - 配置优先级:Nacos配置中心 > Docker环境变量 > application-prod.yaml 变更文件: - viewsh-gateway/src/main/resources/application-prod.yaml - viewsh-module-system-server/src/main/resources/application-prod.yaml - viewsh-module-infra-server/src/main/resources/application-prod.yaml - viewsh-module-iot-server/src/main/resources/application-prod.yaml - viewsh-module-iot-gateway/src/main/resources/application-prod.yaml - docker-compose.core.yml - Jenkinsfile
This commit is contained in:
11
Jenkinsfile
vendored
11
Jenkinsfile
vendored
@@ -141,7 +141,16 @@ pipeline {
|
||||
sortedServices.each { service ->
|
||||
echo "🚀 Deploying ${service}..."
|
||||
|
||||
def containerName = getContainerName(service)
|
||||
// 获取容器名称
|
||||
def serviceMap = [
|
||||
'viewsh-gateway': 'aiot-gateway',
|
||||
'viewsh-module-system-server': 'aiot-system-server',
|
||||
'viewsh-module-infra-server': 'aiot-infra-server',
|
||||
'viewsh-module-iot-server': 'aiot-iot-server',
|
||||
'viewsh-module-iot-gateway': 'aiot-iot-gateway'
|
||||
]
|
||||
def containerName = serviceMap[service] ?: "aiot-${service}"
|
||||
|
||||
def sshKey = '/var/jenkins_home/.ssh/id_rsa'
|
||||
def sshOpts = "-o StrictHostKeyChecking=no -o ConnectTimeout=10 -i ${sshKey}"
|
||||
|
||||
|
||||
@@ -1,11 +1,5 @@
|
||||
version: '3.8'
|
||||
|
||||
# ============================================
|
||||
# AIOT Platform - 核心服务部署配置 (方案 A)
|
||||
# 连接到 1Panel 已安装的中间件
|
||||
# 总内存占用: ~4.5GB (仅应用服务)
|
||||
# ============================================
|
||||
|
||||
networks:
|
||||
aiot-network:
|
||||
driver: bridge
|
||||
@@ -14,292 +8,199 @@ volumes:
|
||||
app-logs:
|
||||
|
||||
services:
|
||||
# ============ 应用服务 ============
|
||||
# 注意: 中间件(MySQL, Redis, Nacos, RocketMQ)已通过 1Panel 安装
|
||||
# 应用服务通过环境变量配置连接到宿主机的中间件
|
||||
|
||||
|
||||
viewsh-gateway:
|
||||
image: ${REGISTRY_HOST}/viewsh-gateway:${IMAGE_TAG}
|
||||
image: ${REGISTRY_HOST:-localhost:5000}/viewsh-gateway:${IMAGE_TAG:-latest}
|
||||
container_name: aiot-gateway
|
||||
restart: on-failure:5
|
||||
network_mode: host # 使用宿主机网络,直接访问 1Panel 中间件
|
||||
network_mode: host
|
||||
environment:
|
||||
JAVA_OPTS: "-Xms${GATEWAY_JVM_XMS} -Xmx${GATEWAY_JVM_XMX} ${JVM_COMMON_OPTS}"
|
||||
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration,com.binarywang.spring.starter.wxjava.mp.config.WxMpAutoConfiguration
|
||||
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
|
||||
REDIS_HOST: ${REDIS_HOST}
|
||||
REDIS_PORT: ${REDIS_PORT}
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
REDIS_DATABASE: ${REDIS_DATABASE:-0}
|
||||
TZ: ${TZ}
|
||||
# ===== 基础配置 =====
|
||||
TZ: Asia/Shanghai
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
|
||||
# ===== JVM 配置 =====
|
||||
JAVA_OPTS: "-Xms512m -Xmx1024m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs"
|
||||
|
||||
# ===== Nacos 配置 =====
|
||||
SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: "aiot-platform" # TODO: 填入实际的命名空间 UUID
|
||||
SPRING_CLOUD_NACOS_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: "aiot-platform" # TODO: 填入实际的命名空间 UUID
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.17.16.14
|
||||
|
||||
# ===== Redis 配置 =====
|
||||
SPRING_DATA_REDIS_HOST: 172.17.16.14
|
||||
SPRING_DATA_REDIS_PORT: 6379
|
||||
SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" # TODO: 填入实际的 Redis 密码
|
||||
|
||||
volumes:
|
||||
- app-logs:/app/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: ${GATEWAY_MEMORY_LIMIT}
|
||||
memory: 1536m
|
||||
cpus: '1.0'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48080/actuator/health"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 120s
|
||||
|
||||
viewsh-module-system-server:
|
||||
image: ${REGISTRY_HOST}/viewsh-module-system-server:${IMAGE_TAG}
|
||||
image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-system-server:${IMAGE_TAG:-latest}
|
||||
container_name: aiot-system-server
|
||||
restart: on-failure:5
|
||||
network_mode: host
|
||||
environment:
|
||||
JAVA_OPTS: "-Xms${SYSTEM_JVM_XMS} -Xmx${SYSTEM_JVM_XMX} ${JVM_COMMON_OPTS}"
|
||||
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration
|
||||
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}
|
||||
REDIS_DATABASE: ${REDIS_DATABASE:-0}
|
||||
TZ: ${TZ}
|
||||
TZ: Asia/Shanghai
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
JAVA_OPTS: "-Xms512m -Xmx1024m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs"
|
||||
|
||||
# Nacos
|
||||
SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: "aiot-platform" # TODO: 填入命名空间 UUID
|
||||
SPRING_CLOUD_NACOS_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: "aiot-platform" # TODO: 填入命名空间 UUID
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.17.16.14
|
||||
|
||||
# 数据库
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root # TODO: 填入数据库用户名
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+" # TODO: 填入数据库密码
|
||||
|
||||
# Redis
|
||||
SPRING_DATA_REDIS_HOST: 172.17.16.14
|
||||
SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD" # TODO: 填入 Redis 密码
|
||||
|
||||
volumes:
|
||||
- app-logs:/app/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: ${SYSTEM_MEMORY_LIMIT}
|
||||
memory: 1536m
|
||||
cpus: '1.0'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48081"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48081/actuator/health"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 120s
|
||||
depends_on:
|
||||
viewsh-gateway:
|
||||
condition: service_healthy
|
||||
|
||||
viewsh-module-infra-server:
|
||||
image: ${REGISTRY_HOST}/viewsh-module-infra-server:${IMAGE_TAG}
|
||||
image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-infra-server:${IMAGE_TAG:-latest}
|
||||
container_name: aiot-infra-server
|
||||
restart: on-failure:5
|
||||
network_mode: host
|
||||
environment:
|
||||
JAVA_OPTS: "-Xms${INFRA_JVM_XMS} -Xmx${INFRA_JVM_XMX} ${JVM_COMMON_OPTS}"
|
||||
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration
|
||||
# XXL-JOB 配置(暂时注释,等部署 XXL-JOB Admin 后启用)
|
||||
# XXL_JOB_ADMIN_ADDRESSES: ${XXL_JOB_ADMIN_ADDRESSES:-http://127.0.0.1:9090/xxl-job-admin}
|
||||
# XXL_JOB_ACCESS_TOKEN: ${XXL_JOB_ACCESS_TOKEN:-default_token}
|
||||
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}
|
||||
REDIS_DATABASE: ${REDIS_DATABASE:-0}
|
||||
TZ: ${TZ}
|
||||
TZ: Asia/Shanghai
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
JAVA_OPTS: "-Xms512m -Xmx1024m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs"
|
||||
|
||||
SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.17.16.14
|
||||
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+"
|
||||
|
||||
SPRING_DATA_REDIS_HOST: 172.17.16.14
|
||||
SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD"
|
||||
|
||||
volumes:
|
||||
- app-logs:/app/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: ${INFRA_MEMORY_LIMIT}
|
||||
cpus: '1.0'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48082"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48082/actuator/health"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 120s
|
||||
depends_on:
|
||||
viewsh-module-system-server:
|
||||
condition: service_healthy
|
||||
|
||||
viewsh-module-iot-server:
|
||||
image: ${REGISTRY_HOST}/viewsh-module-iot-server:${IMAGE_TAG}
|
||||
image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-iot-server:${IMAGE_TAG:-latest}
|
||||
container_name: aiot-iot-server
|
||||
restart: on-failure:5
|
||||
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}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration
|
||||
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}
|
||||
REDIS_DATABASE: ${REDIS_DATABASE:-0}
|
||||
ROCKETMQ_NAMESRV_ADDR: ${ROCKETMQ_NAMESRV_HOST}:${ROCKETMQ_NAMESRV_PORT}
|
||||
TZ: ${TZ}
|
||||
TZ: Asia/Shanghai
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
JAVA_OPTS: "-Xms1024m -Xmx2048m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs"
|
||||
|
||||
SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.17.16.14
|
||||
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_URL: jdbc:mysql://172.17.16.14:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_USERNAME: root
|
||||
SPRING_DATASOURCE_DYNAMIC_DATASOURCE_MASTER_PASSWORD: "65p^VTPi9Qd+"
|
||||
|
||||
SPRING_DATA_REDIS_HOST: 172.17.16.14
|
||||
SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD"
|
||||
|
||||
ROCKETMQ_NAME_SERVER: 172.17.16.14:9876
|
||||
|
||||
volumes:
|
||||
- app-logs:/app/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: ${IOT_SERVER_MEMORY_LIMIT}
|
||||
memory: 2560m
|
||||
cpus: '1.5'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48083"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48083/actuator/health"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 120s
|
||||
depends_on:
|
||||
viewsh-module-infra-server:
|
||||
condition: service_healthy
|
||||
|
||||
viewsh-module-iot-gateway:
|
||||
image: ${REGISTRY_HOST}/viewsh-module-iot-gateway:${IMAGE_TAG}
|
||||
image: ${REGISTRY_HOST:-localhost:5000}/viewsh-module-iot-gateway:${IMAGE_TAG:-latest}
|
||||
container_name: aiot-iot-gateway
|
||||
restart: on-failure:5
|
||||
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}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration
|
||||
# Nacos 配置
|
||||
NACOS_SERVER_ADDR: ${NACOS_HOST}:${NACOS_PORT}
|
||||
NACOS_USERNAME: ${NACOS_USERNAME}
|
||||
NACOS_PASSWORD: ${NACOS_PASSWORD}
|
||||
NACOS_NAMESPACE: ${NACOS_NAMESPACE}
|
||||
NACOS_GROUP: DEFAULT_GROUP
|
||||
# Redis 配置
|
||||
REDIS_HOST: ${REDIS_HOST}
|
||||
REDIS_PORT: ${REDIS_PORT}
|
||||
REDIS_PASSWORD: ${REDIS_PASSWORD}
|
||||
REDIS_DATABASE: ${REDIS_DATABASE}
|
||||
REDIS_TIMEOUT: 30000ms
|
||||
# RocketMQ 配置
|
||||
ROCKETMQ_NAMESRV_ADDR: ${ROCKETMQ_NAMESRV_HOST}:${ROCKETMQ_NAMESRV_PORT}
|
||||
# IoT 消息总线配置
|
||||
IOT_MESSAGE_BUS_TYPE: ${IOT_MESSAGE_BUS_TYPE}
|
||||
# 设备 RPC 配置
|
||||
IOT_RPC_URL: ${IOT_RPC_URL}
|
||||
IOT_RPC_CONNECT_TIMEOUT: ${IOT_RPC_CONNECT_TIMEOUT}
|
||||
IOT_RPC_READ_TIMEOUT: ${IOT_RPC_READ_TIMEOUT}
|
||||
# 设备 Token 配置
|
||||
IOT_TOKEN_SECRET: ${IOT_TOKEN_SECRET}
|
||||
IOT_TOKEN_EXPIRATION: ${IOT_TOKEN_EXPIRATION}
|
||||
# HTTP 协议配置
|
||||
IOT_HTTP_ENABLED: ${IOT_HTTP_ENABLED}
|
||||
IOT_HTTP_PORT: ${IOT_HTTP_PORT}
|
||||
# MQTT 协议配置
|
||||
IOT_MQTT_ENABLED: ${IOT_MQTT_ENABLED}
|
||||
IOT_MQTT_PORT: ${IOT_MQTT_PORT}
|
||||
IOT_MQTT_MAX_MESSAGE_SIZE: ${IOT_MQTT_MAX_MESSAGE_SIZE}
|
||||
IOT_MQTT_CONNECT_TIMEOUT: ${IOT_MQTT_CONNECT_TIMEOUT}
|
||||
IOT_MQTT_SSL_ENABLED: ${IOT_MQTT_SSL_ENABLED}
|
||||
# TCP 协议配置
|
||||
IOT_TCP_ENABLED: ${IOT_TCP_ENABLED}
|
||||
IOT_TCP_PORT: ${IOT_TCP_PORT}
|
||||
IOT_TCP_KEEPALIVE_TIMEOUT: ${IOT_TCP_KEEPALIVE_TIMEOUT}
|
||||
IOT_TCP_MAX_CONNECTIONS: ${IOT_TCP_MAX_CONNECTIONS}
|
||||
IOT_TCP_SSL_ENABLED: ${IOT_TCP_SSL_ENABLED}
|
||||
# EMQX 协议配置
|
||||
IOT_EMQX_ENABLED: ${IOT_EMQX_ENABLED}
|
||||
IOT_EMQX_HTTP_PORT: ${IOT_EMQX_HTTP_PORT}
|
||||
IOT_EMQX_MQTT_HOST: ${IOT_EMQX_MQTT_HOST}
|
||||
IOT_EMQX_MQTT_PORT: ${IOT_EMQX_MQTT_PORT}
|
||||
IOT_EMQX_MQTT_USERNAME: ${IOT_EMQX_MQTT_USERNAME}
|
||||
IOT_EMQX_MQTT_PASSWORD: ${IOT_EMQX_MQTT_PASSWORD}
|
||||
IOT_EMQX_MQTT_CLIENT_ID: ${IOT_EMQX_MQTT_CLIENT_ID}
|
||||
IOT_EMQX_MQTT_SSL: ${IOT_EMQX_MQTT_SSL}
|
||||
IOT_EMQX_TRUST_ALL: ${IOT_EMQX_TRUST_ALL}
|
||||
IOT_EMQX_WILL_ENABLED: ${IOT_EMQX_WILL_ENABLED}
|
||||
# 日志配置
|
||||
LOG_FILE_PATH: /app/logs
|
||||
LOG_LEVEL_IOT_GATEWAY: ${LOG_LEVEL_IOT_GATEWAY}
|
||||
LOG_LEVEL_EMQX: ${LOG_LEVEL_EMQX}
|
||||
LOG_LEVEL_HTTP: ${LOG_LEVEL_HTTP}
|
||||
LOG_LEVEL_MQTT: ${LOG_LEVEL_MQTT}
|
||||
TZ: ${TZ}
|
||||
TZ: Asia/Shanghai
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
JAVA_OPTS: "-Xms1024m -Xmx2048m -XX:+UseContainerSupport -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/app/logs"
|
||||
|
||||
SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_CONFIG_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_SERVER_ADDR: 172.17.16.14:8848
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE: "aiot-platform"
|
||||
SPRING_CLOUD_NACOS_DISCOVERY_IP: 172.17.16.14
|
||||
|
||||
SPRING_DATA_REDIS_HOST: 172.17.16.14
|
||||
SPRING_DATA_REDIS_PASSWORD: "9kHXcZ1ojFsD"
|
||||
|
||||
ROCKETMQ_NAME_SERVER: 172.17.16.14:9876
|
||||
|
||||
volumes:
|
||||
- app-logs:/app/logs
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: ${IOT_GATEWAY_MEMORY_LIMIT}
|
||||
memory: 2560m
|
||||
cpus: '1.5'
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48084"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
test: ["CMD", "curl", "-f", "http://localhost:48084/actuator/health"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 12
|
||||
start_period: 120s
|
||||
depends_on:
|
||||
viewsh-module-iot-server:
|
||||
condition: service_healthy
|
||||
|
||||
viewsh-module-ops-server:
|
||||
image: ${REGISTRY_HOST}/viewsh-module-ops-server:${IMAGE_TAG}
|
||||
container_name: aiot-ops-server
|
||||
restart: on-failure:5
|
||||
network_mode: host
|
||||
environment:
|
||||
JAVA_OPTS: "-Xms${OPS_JVM_XMS} -Xmx${OPS_JVM_XMX} ${JVM_COMMON_OPTS}"
|
||||
SPRING_PROFILES_ACTIVE: ${SPRING_PROFILES_ACTIVE}
|
||||
SPRING_AUTOCONFIGURE_EXCLUDE: com.binarywang.spring.starter.wxjava.mp.config.WxMpServiceAutoConfiguration
|
||||
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", "curl", "-f", "http://localhost:48085"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
start_period: 90s
|
||||
depends_on:
|
||||
viewsh-module-infra-server:
|
||||
condition: service_healthy
|
||||
|
||||
# ============ XXL-JOB Admin (可选,暂时注释) ============
|
||||
# 如需部署 XXL-JOB Admin,取消以下注释
|
||||
# xxl-job-admin:
|
||||
# image: xuxueli/xxl-job-admin:2.4.0
|
||||
# container_name: aiot-xxl-job-admin
|
||||
# restart: unless-stopped
|
||||
# network_mode: host
|
||||
# environment:
|
||||
# TZ: ${TZ}
|
||||
# PARAMS: >
|
||||
# --spring.datasource.url=jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DATABASE}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
|
||||
# --spring.datasource.username=${MYSQL_USER}
|
||||
# --spring.datasource.password=${MYSQL_PASSWORD}
|
||||
# --xxl.job.accessToken=${XXL_JOB_ACCESS_TOKEN:-default_token}
|
||||
# volumes:
|
||||
# - app-logs:/data/applogs
|
||||
# healthcheck:
|
||||
# test: ["CMD", "curl", "-f", "http://localhost:9090/xxl-job-admin"]
|
||||
# interval: 30s
|
||||
# timeout: 10s
|
||||
# retries: 5
|
||||
# start_period: 60s
|
||||
|
||||
@@ -3,26 +3,29 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
|
||||
username: ${NACOS_USERNAME:}
|
||||
password: ${NACOS_PASSWORD:}
|
||||
server-addr: 127.0.0.1:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
ip: 127.0.0.1
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
config:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
file-extension: yaml
|
||||
refresh-enabled: true
|
||||
|
||||
--- #################### Redis 配置 ####################
|
||||
spring:
|
||||
data:
|
||||
redis:
|
||||
host: ${REDIS_HOST:127.0.0.1}
|
||||
port: ${REDIS_PORT:6379}
|
||||
database: ${REDIS_DATABASE:0}
|
||||
password: ${REDIS_PASSWORD:}
|
||||
host: 127.0.0.1
|
||||
port: 6379
|
||||
database: 0
|
||||
password: ""
|
||||
timeout: 5000ms
|
||||
lettuce:
|
||||
pool:
|
||||
|
||||
@@ -3,17 +3,20 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
|
||||
username: ${NACOS_USERNAME:}
|
||||
password: ${NACOS_PASSWORD:}
|
||||
server-addr: 127.0.0.1:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
ip: 127.0.0.1
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
config:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
file-extension: yaml
|
||||
refresh-enabled: true
|
||||
lifecycle:
|
||||
timeout-per-shutdown-phase: 30s # 增加优雅关闭超时时间
|
||||
|
||||
|
||||
@@ -5,17 +5,20 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
|
||||
username: ${NACOS_USERNAME:}
|
||||
password: ${NACOS_PASSWORD:}
|
||||
server-addr: 127.0.0.1:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
ip: 127.0.0.1
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
config:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
file-extension: yaml
|
||||
refresh-enabled: true
|
||||
|
||||
--- #################### 应用配置 ####################
|
||||
|
||||
|
||||
@@ -3,17 +3,20 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848}
|
||||
username: ${NACOS_USERNAME:}
|
||||
password: ${NACOS_PASSWORD:}
|
||||
server-addr: 127.0.0.1:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
ip: 127.0.0.1
|
||||
metadata:
|
||||
version: 1.0.0
|
||||
config:
|
||||
namespace: ${NACOS_NAMESPACE:}
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP}
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
file-extension: yaml
|
||||
refresh-enabled: true
|
||||
|
||||
--- #################### 数据库相关配置 ####################
|
||||
spring:
|
||||
|
||||
@@ -3,17 +3,20 @@
|
||||
spring:
|
||||
cloud:
|
||||
nacos:
|
||||
server-addr: ${NACOS_SERVER_ADDR:127.0.0.1:8848} # Nacos 服务器地址,支持环境变量
|
||||
username: ${NACOS_USERNAME:} # Nacos 账号
|
||||
password: ${NACOS_PASSWORD:} # Nacos 密码
|
||||
discovery: # 【服务发现】配置项
|
||||
namespace: ${NACOS_NAMESPACE:} # 命名空间,生产环境
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP} # 使用的 Nacos 配置分组
|
||||
server-addr: 127.0.0.1:8848
|
||||
username: nacos
|
||||
password: nacos
|
||||
discovery:
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
ip: 127.0.0.1
|
||||
metadata:
|
||||
version: 1.0.0 # 服务实例的版本号
|
||||
config: # 【配置中心】配置项
|
||||
namespace: ${NACOS_NAMESPACE:} # 命名空间,生产环境
|
||||
group: ${NACOS_GROUP:DEFAULT_GROUP} # 使用的 Nacos 配置分组
|
||||
version: 1.0.0
|
||||
config:
|
||||
namespace: ""
|
||||
group: DEFAULT_GROUP
|
||||
file-extension: yaml
|
||||
refresh-enabled: true
|
||||
|
||||
--- #################### 数据库相关配置 ####################
|
||||
spring:
|
||||
@@ -54,22 +57,22 @@ spring:
|
||||
primary: master
|
||||
datasource:
|
||||
master:
|
||||
url: jdbc:mysql://${MYSQL_HOST:127.0.0.1}:${MYSQL_PORT:3306}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
username: ${MYSQL_USER:root}
|
||||
password: ${MYSQL_PASSWORD:}
|
||||
url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: root
|
||||
slave: # 从库配置(可选)
|
||||
lazy: true
|
||||
url: jdbc:mysql://${MYSQL_SLAVE_HOST:${MYSQL_HOST:127.0.0.1}}:${MYSQL_SLAVE_PORT:${MYSQL_PORT:3306}}/${MYSQL_DATABASE:aiot_platform}?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
username: ${MYSQL_SLAVE_USER:${MYSQL_USER:root}}
|
||||
password: ${MYSQL_SLAVE_PASSWORD:${MYSQL_PASSWORD:}}
|
||||
url: jdbc:mysql://127.0.0.1:3306/aiot_platform?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: root
|
||||
|
||||
# Redis 配置
|
||||
data:
|
||||
redis:
|
||||
host: ${REDIS_HOST:127.0.0.1}
|
||||
port: ${REDIS_PORT:6379}
|
||||
database: ${REDIS_DATABASE:0}
|
||||
password: ${REDIS_PASSWORD:}
|
||||
host: 127.0.0.1
|
||||
port: 6379
|
||||
database: 0
|
||||
password: ""
|
||||
timeout: 5000ms
|
||||
lettuce:
|
||||
pool:
|
||||
|
||||
Reference in New Issue
Block a user