2025-12-18 11:35:48 +08:00
|
|
|
|
# Build Stage
|
|
|
|
|
|
FROM maven:3.9-eclipse-temurin-17 AS build
|
|
|
|
|
|
WORKDIR /app
|
|
|
|
|
|
|
2025-12-18 14:22:26 +08:00
|
|
|
|
# 配置 Maven 使用阿里云镜像源
|
|
|
|
|
|
COPY settings.xml /usr/share/maven/conf/settings.xml
|
|
|
|
|
|
|
2025-12-18 11:35:48 +08:00
|
|
|
|
# 复制项目源码
|
|
|
|
|
|
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"]
|
|
|
|
|
|
|