Dockerfile -Error: lsstat target/springbootdemo-0.0.1-SNAPSHOT.jar: no such file or directory

Dockerfile -Error: lsstat target/springbootdemo-0.0.1-SNAPSHOT.jar: no such file or directory

我有一个 spring 引导项目并尝试在 OpenShift V3 上使用 Docker 文件构建该项目。

问题是我的 git 仓库中只有我的源代码;没有目标目录或 jar 文件。我的 Docker 文件无法获得最终工件(将应用程序打包到 jar)。

以下是我的docker文件内容

FROM bdf/api-java8-maven-exp-srv-builder
EXPOSE 8080
VOLUME /tmp
WORKDIR /code
ADD pom.xml /code/pom.xml
ADD Dockerfile /code  
RUN ["mvn", "dependency:resolve"]  
RUN ["mvn", "verify"]

ADD src /code/src  
RUN ["mvn", "package"]
ADD /code/target/springbootdemo-0.0.1-SNAPSHOT.jar app.jar
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-Dspring.profiles.active=container","-jar","/app.jar"]

除 ADD /code/target/springbootdemo-0.0.1-SNAPSHOT.jar app.jar

外,所有命令均正常运行

命令:运行 ["mvn", "package"] - 它成功执行并显示 jar 文件在控制台上的位置 /target/springbootdemo-0.0.1-SNAPSHOT.jar

*项目文件夹结构

Project Name- 
 - src Folder 
 - mvn/wrapper
 - Docker File 
 - Pom.XML
 - mvnw
 - mvnwc

以下 DockerFile 对我有用

FROM bfg/api-java8-maven-exp-srv-builder
EXPOSE 8080

RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
ONBUILD ADD . /usr/src/app
ONBUILD RUN mvn install
ONBUILD ADD /usr/src/app/target/springbootdemo-0.0.1-SNAPSHOT.jar app.jar

CMD ["java","-jar","/app.jar"]