Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 弹簧靴分层罐+;码头工人_Spring_Spring Boot_Docker_Maven_Jar - Fatal编程技术网

Spring 弹簧靴分层罐+;码头工人

Spring 弹簧靴分层罐+;码头工人,spring,spring-boot,docker,maven,jar,Spring,Spring Boot,Docker,Maven,Jar,我的目标是使用分层JAR建立一个多阶段docker映像构建 为此,我使用以下Dockerfile: FROM maven:3.6-openjdk-16-slim AS builder WORKDIR application COPY pom.xml ./ # store maven dependencies so next build doesn't have to download them again RUN mvn dependency:go-offline COPY src src

我的目标是使用分层JAR建立一个多阶段docker映像构建

为此,我使用以下Dockerfile:

FROM maven:3.6-openjdk-16-slim AS builder
WORKDIR application

COPY pom.xml ./
# store maven dependencies so next build doesn't have to download them again
RUN mvn dependency:go-offline

COPY src src
RUN mvn package

# LAYERED JAR
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} ./application.jar
RUN java -Djarmode=layertools -jar application.jar extract

# Alpine Linux with OpenJDK JRE
FROM azul/zulu-openjdk-alpine:16-jre
WORKDIR application
COPY --from=builder application/dependencies/ ./
COPY --from=builder application/spring-boot-loader ./
COPY --from=builder application/snapshot-dependencies/ ./
COPY --from=builder application/application/ ./

#JVM
ENV MAX_HEAP_MB="512"

# Appliction Insights
ENV APP_INSIGHTS_JAR_FILE=app-insights-agent.jar

RUN wget --no-verbose --no-check-certificate -O ./${APP_INSIGHTS_JAR_FILE} https://github.com/microsoft/ApplicationInsights-Java/releases/download/3.0.3/applicationinsights-agent-3.0.3.jar
ENTRYPOINT java -javaagent:./${APP_INSIGHTS_JAR_FILE} -Xmx${MAX_HEAP_MB}m org.springframework.boot.loader.JarLauncher
乍一看,这就像是一种魅力,问题是当你想“重建”你的形象时。运行该docker文件的docker build会生成一个没有最新代码更改的映像。
clean添加到mvn包解决了这个问题,但我失去了缓存mvn dependency:go offline提供给我的依赖项的能力,因为所有依赖项都会再次下载。
我试着补充一下

RUN rm -rf target/classes
但是没有效果

谢谢

编辑: 解决办法是改变

COPY ${JAR_FILE} ./application.jar
为了


有时显而易见的事情会被忽略。。。COPY命令从源生成目录复制。。更改RUN
runcp${JAR\u FILE}application.JAR
解决了这个问题
RUN cp ${JAR_FILE} application.jar