# Build Stage FROM maven:3.9-eclipse-temurin-17 AS build WORKDIR /app # 配置 Maven 使用阿里云镜像源 COPY settings.xml /usr/share/maven/conf/settings.xml # 复制项目源码 COPY . . # 执行 Maven 构建 # 这里的 install 是为了让 gateway 能引用到本地构建的 core/api 等模块依赖 # -pl 指定只构建 gateway 及其依赖 # -am (also make dependents) 构建依赖模块 RUN mvn -B clean install -DskipTests -Dmaven.javadoc.skip=true # Run Stage FROM eclipse-temurin:17-jre WORKDIR /app # 设置时区 ENV TZ=Asia/Shanghai # 复制网关 jar 包 # 注意路径:viewshanghai-module-iot/viewshanghai-module-iot-gateway/target/viewshanghai-module-iot-gateway.jar COPY --from=build /app/viewshanghai-module-iot/viewshanghai-module-iot-gateway/target/viewshanghai-module-iot-gateway.jar app.jar # 暴露端口 # MQTT EXPOSE 1883 # HTTP Gateway EXPOSE 8092 # TCP Gateway (Optional) EXPOSE 8091 # 启动命令 ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Duser.timezone=Asia/Shanghai", "-jar", "app.jar"]