无法从docker运行命令访问Java Maven项目的jar文件。

huangapple 未分类评论55阅读模式
英文:

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

huangapple
  • 本文由 发表于 2020年3月15日 07:16:23
  • 转载请务必保留本文链接:https://java.coder-hub.com/60688211.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定