mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-08-30 22:09:26 +08:00
fix:再次打包调整,修复错误启动失败
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
# 使用 Eclipse Temurin JRE 21 作为基础镜像(更通用)
|
||||
FROM eclipse-temurin:21-jre
|
||||
# 使用本地可用的 OpenJDK 21 基础镜像,避免外网拉取失败
|
||||
FROM openjdk:21
|
||||
|
||||
# 设置工作目录
|
||||
WORKDIR /app
|
||||
@@ -35,6 +35,5 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
|
||||
# 预创建日志目录
|
||||
RUN mkdir -p /app/logs /app/logs/global /app/logs/api /app/logs/tcp /app/logs/mqtt
|
||||
|
||||
# 启动命令:创建日志目录,执行启动脚本,前台跟随 info.log 保持容器存活
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && /app/cn-universal-web/bin/start.sh && tail -F /app/logs/info.log"]
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs /app/logs/global /app/logs/api /app/logs/tcp /app/logs/mqtt && touch /app/logs/cn-universal-web.log /app/logs/all.log /app/logs/global/info.log /app/logs/global/warn.log /app/logs/global/error.log && cn-universal-web/bin/start.sh && tail -n +1 -F /app/logs/all.log /app/logs/cn-universal-web.log /app/logs/global/info.log /app/logs/global/warn.log /app/logs/global/error.log"]
|
||||
# 启动命令:创建日志目录与文件,执行启动脚本,前台跟随 info.log 保持容器存活
|
||||
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && touch /app/logs/info.log && /app/cn-universal-web/bin/start.sh && tail -n +1 -F /app/logs/info.log"]
|
||||
|
||||
@@ -22,7 +22,7 @@ shard.logMeta.enable=true
|
||||
server.port=${SERVER_PORT:9092}
|
||||
server.instance.id=
|
||||
# 绝对路径,匹配容器挂载目录与 tail 跟随
|
||||
logging.file.path=${LOGGING_FILE_PATH:/app/logs/cn-universal2}
|
||||
logging.file.path=${LOGGING_FILE_PATH:/app/logs}
|
||||
|
||||
# ================================
|
||||
# 数据库配置(读取 Docker 环境变量)
|
||||
@@ -343,4 +343,4 @@ databridge.plugins.huawei-iot-output.enabled=true
|
||||
databridge.plugins.aliyun-iot-bidirectional.enabled=true
|
||||
databridge.plugins.tencent-iot-bidirectional.enabled=true
|
||||
databridge.plugins.huawei-iot-bidirectional.enabled=true
|
||||
#logging.level.org.springframework.beans.factory=DEBUG
|
||||
#logging.level.org.springframework.beans.factory=DEBUG
|
||||
|
||||
@@ -1,164 +0,0 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
backend:
|
||||
image: ${BACKEND_IMAGE:-nexiot/cn-universal-backend:1.0.0}
|
||||
container_name: cn-universal-backend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9092:9092"
|
||||
environment:
|
||||
- SPRING_DATASOURCE_URL=${SPRING_DATASOURCE_URL:-jdbc:mysql://mysql:3306/univ?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8&useSSL=false&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true}
|
||||
- SPRING_DATASOURCE_USERNAME=${SPRING_DATASOURCE_USERNAME:-root}
|
||||
- SPRING_DATASOURCE_PASSWORD=${SPRING_DATASOURCE_PASSWORD:-Haha@2025}
|
||||
- SPRING_DATA_REDIS_HOST=${REDIS_HOST:-redis}
|
||||
- SPRING_DATA_REDIS_PORT=${REDIS_PORT:-6379}
|
||||
- SPRING_DATA_REDIS_PASSWORD=${REDIS_PASSWORD:-Nexiot2025}
|
||||
- SPRING_DATA_REDIS_DATABASE=${REDIS_DATABASE:-11}
|
||||
- MQTT_CFG_HOST=${MQTT_HOST:-tcp://emqx:1883}
|
||||
- MQTT_CFG_CLIENT_USERNAME=${MQTT_USERNAME:-universal_iot}
|
||||
- MQTT_CFG_CLIENT_PASSWORD=${MQTT_PASSWORD:-Abc@2025}
|
||||
- MQTT_CFG_CLIENT_ID_PREFIX=${MQTT_CLIENT_ID_PREFIX:-univ_iot_docker}
|
||||
- MQTT_CFG_HOST_OUT=${MQTT_HOST_OUT:-tcp://127.0.0.1:1883}
|
||||
- MQTT_CFG_EMQX_HEADER_KEY=${EMQX_HEADER_KEY:-universal-emqx}
|
||||
- MQTT_CFG_EMQX_HEADER_VALUE=${EMQX_HEADER_VALUE:-d41d8cd98f00b204e9800998ecf8427e}
|
||||
- SPRING_PROFILES_ACTIVE=docker,prod
|
||||
- RUN_MODE=docker
|
||||
- LOGGING_FILE_PATH=/app/logs
|
||||
- SERVER_PORT=9092
|
||||
- SERVER_HTTP2_ENABLED=false
|
||||
- JAVA_TOOL_OPTIONS=-Dio.netty.native.workdir=/app/logs
|
||||
- TCP_PROTOCOL_ENABLED=false
|
||||
- UDP_PROTOCOL_ENABLED=false
|
||||
- CTAIOT_PROTOCOL_ENABLE=false
|
||||
- ONENET_PROTOCOL_ENABLED=false
|
||||
- IMOULIFE_PROTOCOL_ENABLED=false
|
||||
- SHARD_LOG_ENABLE=true
|
||||
- SPRING_APPLICATION_JSON={"server":{"port":9092},"management":{"endpoints":{"web":{"exposure":{"include":"health,info,metrics,prometheus"},"base-path":"/actuator"}}}},"shard":{"log":{"enable":true,"table":{"number":24},"virtual":{"number":8}},"logMeta":{"enable":true,"table":{"number":24},"virtual":{"number":8}}},"iot":{"register":{"auto":{"unionId":"auto_register","latitude":31.081598,"longitude":81.314141}}}}
|
||||
depends_on:
|
||||
- mysql
|
||||
- redis
|
||||
- emqx
|
||||
networks:
|
||||
- release-network
|
||||
volumes:
|
||||
- backend_logs:/app/logs
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
read_only: true
|
||||
tmpfs:
|
||||
- /tmp
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
frontend:
|
||||
image: ${FRONTEND_IMAGE:-nexiot/cn-universal-frontend:1.0.0}
|
||||
container_name: cn-universal-frontend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
depends_on:
|
||||
- backend
|
||||
networks:
|
||||
- release-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
mysql:
|
||||
image: ${MYSQL_IMAGE:-mysql:8.0}
|
||||
container_name: cn-universal-mysql
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- MYSQL_ROOT_PASSWORD=${MYSQL_PASSWORD:-Haha@2025}
|
||||
- MYSQL_DATABASE=${MYSQL_DATABASE:-univ}
|
||||
ports:
|
||||
- "3306:3306"
|
||||
volumes:
|
||||
- mysql_data:/var/lib/mysql
|
||||
networks:
|
||||
- release-network
|
||||
command: --default-authentication-plugin=mysql_native_password --lower_case_table_names=1 --sql_mode=STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
redis:
|
||||
image: ${REDIS_IMAGE:-redis:7-alpine}
|
||||
container_name: cn-universal-redis
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- REDIS_PASSWORD=${REDIS_PASSWORD:-Nexiot2025}
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- redis_data:/data
|
||||
networks:
|
||||
- release-network
|
||||
command: redis-server --requirepass ${REDIS_PASSWORD:-Nexiot2025}
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
emqx:
|
||||
image: ${EMQX_IMAGE:-emqx/emqx:5.3}
|
||||
container_name: cn-universal-emqx
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- EMQX_NAME=emqx
|
||||
- EMQX_HOST=localhost
|
||||
ports:
|
||||
- "1883:1883"
|
||||
- "8083:8083"
|
||||
- "8084:8084"
|
||||
- "18083:18083"
|
||||
volumes:
|
||||
- emqx_data:/opt/emqx/data
|
||||
- emqx_log:/opt/emqx/log
|
||||
networks:
|
||||
- release-network
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
adminer:
|
||||
image: ${ADMINER_IMAGE:-adminer}
|
||||
container_name: cn-universal-adminer
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8081:8080"
|
||||
environment:
|
||||
- ADMINER_DEFAULT_SERVER=mysql
|
||||
depends_on:
|
||||
- mysql
|
||||
networks:
|
||||
- release-network
|
||||
logging:
|
||||
driver: "json-file"
|
||||
options:
|
||||
max-size: "10m"
|
||||
max-file: "3"
|
||||
|
||||
volumes:
|
||||
mysql_data:
|
||||
redis_data:
|
||||
emqx_data:
|
||||
emqx_log:
|
||||
backend_logs:
|
||||
|
||||
networks:
|
||||
release-network:
|
||||
driver: bridge
|
||||
@@ -38,6 +38,11 @@ if [ ! -d "${REPO_ROOT}/cn-universal-web/target/cn-universal-web" ]; then
|
||||
)
|
||||
fi
|
||||
|
||||
# 确保 docker profile 配置文件存在于打包目录
|
||||
if [ -d "${REPO_ROOT}/cn-universal-web/target/cn-universal-web/config" ] && [ -f "${REPO_ROOT}/cn-universal-web/src/main/resources/application-docker.properties" ]; then
|
||||
cp "${REPO_ROOT}/cn-universal-web/src/main/resources/application-docker.properties" "${REPO_ROOT}/cn-universal-web/target/cn-universal-web/config/application-docker.properties"
|
||||
fi
|
||||
|
||||
if [ ! -d "${REPO_ROOT}/cn-universal-web-ui/dist" ]; then
|
||||
echo "🔨 前端未构建,开始执行 NPM 构建..."
|
||||
(
|
||||
|
||||
@@ -49,6 +49,7 @@ services:
|
||||
- IMOULIFE_PROTOCOL_ENABLED=false
|
||||
# 兼容未打包的 local profile 配置
|
||||
- SHARD_LOG_ENABLE=true
|
||||
- SHARD_LOGMETA_ENABLE=true
|
||||
- SPRING_APPLICATION_JSON={"server":{"port":9092},"management":{"endpoints":{"web":{"exposure":{"include":"health,info,metrics,prometheus"},"base-path":"/actuator"}}}},"shard":{"log":{"enable":true,"table":{"number":24},"virtual":{"number":8}},"logMeta":{"enable":true,"table":{"number":24},"virtual":{"number":8}}},"iot":{"register":{"auto":{"unionId":"auto_register","latitude":31.081598,"longitude":81.314141}}}}
|
||||
depends_on:
|
||||
- mysql
|
||||
|
||||
Reference in New Issue
Block a user