我有一个spring boot项目,并试图在OpenShift V3上使用Docker文件构建项目。
问题是我的git repo中只有源代码;没有目标目录或jar文件。我的Dockerfile无法获得最终的工件(将应用程序打包到jar中)。
以下是我的泊坞文件内容
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
除外命令:RUN [" mvn"," package"] - 它成功执行并显示jar文件是在控制台上创建的位置/target/springbootdemo-0.0.1-SNAPSHOT .jar
* Projct文件夹结构
Project Name-
- src Folder
- mvn/wrapper
- Docker File
- Pom.XML
- mvnw
- mvnwc
答案 0 :(得分:1)
以下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"]