首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于docker文件中的路径不正确,无法提供文件访问权限

由于docker文件中的路径不正确,无法提供文件访问权限
EN

Stack Overflow用户
提问于 2022-05-30 06:50:17
回答 1查看 134关注 0票数 0

我正在准备一个java服务的坞映像。但是,在构建图像时,我会遇到以下错误。

代码语言:javascript
复制
chmod: cannot access '/HerculesServiceOnboarding-linux': No such file or directory

HerculesServiceOnboarding linux是一个二进制文件,被调用以在java服务中执行。文件位于路径src/main/java/resources/下。通常的maven项目结构。

下面是我的java服务的项目结构。

下面的是停靠文件代码.

代码语言:javascript
复制
FROM adoptopenjdk:8-jre-openj9

ARG app=hercules-onboarding-job

ENV app $app

RUN rm -rf /var/lib/apt/lists/* \
&& apt-get clean \
&& apt-get update \
&& apt-get -y --no-install-recommends upgrade \
&& apt-get -y --no-install-recommends install locales \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& locale-gen en_US.UTF-8

ENV LANG="en_US.UTF-8" \
LANGUAGE="en_US:en" \
LC_ALL="en_US.UTF-8" \
VERSION=8 \
UPDATE=222 \
BUILD=10

COPY  /target/$app.jar /javaAction/target/
COPY log4Olympus2.xml /

RUN chmod +x /HerculesServiceOnboarding-linux -- **Failed on this line with above mentioned error**
# RUN chmod +x /target/classes/HerculesServiceOnboarding-linux -- getting the same error
#RUN chmod +x /target/$app.jar/HerculesServiceOnboarding-linux -- getting the same error

CMD ["java", "-jar", "/javaAction/target/hercules-onboarding-job.jar"]

我不知道访问文件的正确路径是什么?我必须提供的任何路径都不应该是特定于环境的,因为这将部署到多个env。

请求您的帮助,为我提供访问该文件的正确路径!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-30 09:04:29

RUN子句中的每个命令都将在构建的映像中执行,因此是在openjre上执行的,同时可能添加了所有文件/dir。

在您的示例中,当build命令到达chmod时,到目前为止您有:

代码语言:javascript
复制
/javaAction/target/hercules-onboarding-job.jar
/everthing/else/provided/with/openjre

因此,您不能期望它找到不存在的文件.目前还没有。

您所要做的就是复制/添加所需的文件(如果需要更多的话),就像您对jar所做的那样.或者是jar本身,您想要" chmod ",然后用正确的路径修复chmod。

如果您不希望它停留在您的形象,您可以只是删除它在您的构建结束,运行rm -rf .命令

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72430171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档