Files
Universal-IoT-Java/cn-universal-web/Dockerfile.alpine
T

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"]