## 使用 JRE 运行,避免在镜像中重新构建 Jar FROM docker.io/eclipse-temurin:21-jre ## 允许在构建时传入已编译好的 Jar 路径与外部挂载的配置目录 ARG JAR_PATH=/opt/alert/alert-backend/app.jar ARG CONFIG_DIR=/opt/alert/alert-backend WORKDIR /yudao-server ## 配置目录来自宿主机挂载,不在镜像内再生成 ENV CONFIG_DIR=${CONFIG_DIR} RUN mkdir -p ${CONFIG_DIR} VOLUME ${CONFIG_DIR} ## 拷贝已有的可执行 Jar COPY ${JAR_PATH} app.jar ## 基础运行时配置 ENV TZ=Asia/Shanghai ENV JAVA_OPTS="-Xms512m -Xmx512m -Djava.security.egd=file:/dev/./urandom" ENV ARGS="" ENV SPRING_CONFIG_ADDITIONAL_LOCATION=file:${CONFIG_DIR}/ ENV LOGGING_CONFIG=${CONFIG_DIR}/logback-spring.xml EXPOSE 48080 CMD java ${JAVA_OPTS} -Dlogging.config=${LOGGING_CONFIG} -jar /yudao-server/app.jar --spring.config.additional-location=${SPRING_CONFIG_ADDITIONAL_LOCATION} $ARGS