mirror of
https://gitee.com/NexIoT/Universal-IoT-Java.git
synced 2026-08-31 00:19:29 +08:00
33 lines
934 B
Docker
33 lines
934 B
Docker
# 使用 Eclipse Temurin JRE 21 Alpine 版本 (镜像更小、通用)
|
|
FROM eclipse-temurin:21-jre-alpine
|
|
|
|
# 设置工作目录
|
|
WORKDIR /app
|
|
|
|
# 安装必要的工具
|
|
RUN apk add --no-cache curl
|
|
|
|
# 创建应用用户
|
|
RUN addgroup -g 1001 -S appuser && \
|
|
adduser -u 1001 -S appuser -G appuser
|
|
|
|
# 复制应用文件到带项目名的目录,保持 bin 的相对层级结构
|
|
COPY target/cn-universal-web/ /app/cn-universal-web/
|
|
|
|
# 设置权限
|
|
RUN chown -R appuser:appuser /app
|
|
USER appuser
|
|
|
|
# 暴露端口
|
|
EXPOSE 9092
|
|
|
|
# 健康检查
|
|
HEALTHCHECK --interval=30s --timeout=3s --start-period=60s --retries=3 \
|
|
CMD curl -f http://localhost:9092/actuator/health || exit 1
|
|
|
|
# 预创建日志目录
|
|
RUN mkdir -p /app/logs
|
|
|
|
# 启动命令:创建日志目录,执行脚本后台启动,再跟随实际项目日志保持前台
|
|
ENTRYPOINT ["sh", "-c", "mkdir -p /app/logs && cn-universal-web/bin/start.sh && tail -F /app/logs/all.log"]
|