英文:
Unable to access jarfile from docker run command for java maven project
问题
构建 Maven 项目的 Docker 镜像
尝试运行 docker run 时出现错误,显示无法访问 jar 文件。
有人可以协助解决问题吗?
FROM openjdk:8-jre-alpine as release
RUN addgroup -g 1001 -S user1 && user1 -u 1001 -S user1 -G user1
WORKDIR /home/app
COPY --from=builder /home/app/service-1.0.0.jar .
RUN chown -R user1:user1 /home/app
USER user1
ENTRYPOINT ["java", "-jar" ,"/home/app/service-1.0.0.jar"]
但是当我尝试使用本地配置文件进行构建挂载的 Docker 运行时:
docker run -it --mount type=bind,source=D:/Java/service/docker/config,target=/home/app services
显示错误信息:
无法访问 jar 文件 /home/app/service-1.0.0.jar
有人可以协助解决这个问题吗?或者我做错了什么?
英文:
Build docker images using docker file for maven project
When try running docker run getting error saying Unable to access jarfile.
Can some one assist on whats wrong with .
FROM openjdk:8-jre-alpine as release
RUN addgroup -g 1001 -S user1 && user1 -u 1001 -S user1 -G user1
WORKDIR /home/app
COPY --from=builder /home/app/service-1.0.0.jar .
RUN chown -R user1:user1 /home/app
USER user1
ENTRYPOINT ["java", "-jar" ,"/home/app/service-1.0.0.jar"]
but when i go for docker run with local config files as build mount
docker run -it --mount type=bind,source=D:/Java/service/docker/config,target=/home/app services
>Unable to access jarfile /home/app/service-1.0.0.jar
Can someone assist on this or is something wrong i did??
答案1
得分: 0
我不确定您是否正在寻找多阶段的 Docker 构建。如果不是,您无需使用 "COPY --from=builder",因为它试图从前一个阶段复制构建产物到这个新阶段。如果这是一个单阶段的 Docker 构建,您只需按如下方式使用复制命令 -
COPY /home/app/service-1.0.0.jar .
英文:
I am not sure if you are looking for multistage docker build. If not, you need not use "COPY --from=builder" as it tires to copy the build artifact from your previous stage to this new stage. If it is a single stage docker build, you might just use the copy as follows -
COPY /home/app/service-1.0.0.jar .
答案2
得分: 0
能够解决相同的问题,问题是由于配置文件堆积没有正确进行造成的。
将 docker run -it --mount type=bind,source=D:/Java/service/docker/config,target=/home/app services
更改为 docker run -it --mount type=bind,source=D:/Java/service/docker/config/app.config,target=/home/app services
,这使得服务能够加载和运行。
英文:
Able to resolve the same, Issue was due to mound of config files not happened properly.
instead of docker run -it --mount type=bind,source=D:/Java/service/docker/config,target=/home/app services
changes it to docker run -it --mount type=bind,source=D:/Java/service/docker/config/app.config,target=/home/app services
which made service to load and work
专注分享java语言的经验与见解,让所有开发者获益!
评论