57 строки
2.2 KiB
Docker
57 строки
2.2 KiB
Docker
|
#FROM maven:3-jdk-8-alpine as builder
|
|||
|
#WORKDIR /app
|
|||
|
#COPY settings.xml /usr/share/maven/ref/repository/settings.xml
|
|||
|
#COPY pom.xml .
|
|||
|
#COPY gateway/pom.xml gateway/
|
|||
|
#COPY core/pom.xml core/
|
|||
|
#COPY common/pom.xml common/
|
|||
|
#COPY passport/pom.xml passport/
|
|||
|
#COPY upms/pom.xml upms/
|
|||
|
#COPY empty/pom.xml empty/
|
|||
|
#COPY material/pom.xml material/
|
|||
|
#COPY order/pom.xml order/
|
|||
|
#COPY monitor/pom.xml monitor/
|
|||
|
#COPY equipment/pom.xml equipment/
|
|||
|
#COPY basic/pom.xml basic/
|
|||
|
## COPY report/pom.xml report/
|
|||
|
#
|
|||
|
#RUN mvn -B -s /usr/share/maven/ref/repository/settings.xml dependency:resolve-plugins dependency:resolve clean package
|
|||
|
#
|
|||
|
#COPY ./ ./
|
|||
|
#
|
|||
|
#RUN mvn -B -s /usr/share/maven/ref/repository/settings.xml -Dmaven.test.skip=true -Ptest clean package
|
|||
|
FROM maven:3-jdk-8-alpine as builder
|
|||
|
WORKDIR /app
|
|||
|
COPY ./ ./
|
|||
|
RUN mvn -s settings.xml clean package -Dmaven.test.skip=true
|
|||
|
|
|||
|
FROM anapsix/alpine-java:8_server-jre_unlimited as layers
|
|||
|
LABEL mantainer=shihairong@zimonet.com
|
|||
|
WORKDIR /app
|
|||
|
COPY --from=builder app/ym-gateway/target/ym-gateway.jar /app/app.jar
|
|||
|
#ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom","-jar","app.jar", "--spring.profiles.active=dev"]
|
|||
|
|
|||
|
# 通过工具spring-boot-jarmode-layertools从application.jar中提取拆分后的构建结果
|
|||
|
RUN java -Djarmode=layertools -jar app.jar extract
|
|||
|
|
|||
|
# 正式构建镜像
|
|||
|
FROM anapsix/alpine-java:8_server-jre_unlimited
|
|||
|
# 指定工作目录,目录不存在会自动创建
|
|||
|
WORKDIR /app
|
|||
|
# 前一阶段从jar中提取除了多个文件,这里分别执行COPY命令复制到镜像空间中,每次COPY都是一个layer
|
|||
|
COPY --from=layers app/dependencies ./
|
|||
|
COPY --from=layers app/spring-boot-loader ./
|
|||
|
COPY --from=layers app/snapshot-dependencies ./
|
|||
|
COPY --from=layers app/company-dependencies ./
|
|||
|
COPY --from=layers app/application ./
|
|||
|
# 指定时区
|
|||
|
ENV TZ="Asia/Shanghai"
|
|||
|
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
|
|||
|
# 定义一些环境变量,方便环境变量传参
|
|||
|
ENV JVM_OPTS=""
|
|||
|
ENV JAVA_OPTS="-Dspring.profiles.active=dev"
|
|||
|
# 指定暴露的端口,起到说明的作用,不指定也会暴露对应端口
|
|||
|
EXPOSE 8080
|
|||
|
# 启动 jar 的命令
|
|||
|
ENTRYPOINT ["sh","-c","java $JVM_OPTS $JAVA_OPTS org.springframework.boot.loader.JarLauncher"]
|