40 lines
819 B
Docker
40 lines
819 B
Docker
FROM eclipse-temurin:17-jdk-alpine AS builder
|
|
|
|
WORKDIR /app
|
|
|
|
# 复制Maven相关文件
|
|
COPY pom.xml .
|
|
COPY common ./common
|
|
COPY services/dashboard-service ./services/dashboard-service
|
|
|
|
# 下载依赖(利用缓存)
|
|
RUN apt-get update && apt-get install -y maven && \
|
|
mvn dependency:go-offline -B && \
|
|
apt-get clean
|
|
|
|
# 构建项目
|
|
RUN mvn clean package -DskipTests -B
|
|
|
|
# 运行镜像
|
|
FROM eclipse-temurin:17-jre-alpine
|
|
|
|
WORKDIR /app
|
|
|
|
# 添加非root用户
|
|
RUN addgroup -g 1001 -S erp && \
|
|
adduser -u 1001 -S erp -G erp
|
|
|
|
# 复制JAR文件
|
|
COPY --from=builder /app/services/dashboard-service/target/*.jar app.jar
|
|
|
|
# 修改权限
|
|
RUN chown -R erp:erp /app
|
|
|
|
USER erp
|
|
|
|
EXPOSE 8086
|
|
|
|
ENV JAVA_OPTS="-Xms512m -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=200"
|
|
|
|
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
|