【问题标题】:RUN chmod - error during docker build from dockerfileRUN chmod - 从 dockerfile 构建 docker 期间出错
【发布时间】:2019-09-20 19:49:27
【问题描述】:

我正在尝试将 .war 文件从我的主机桌面复制到我的 docker 容器内的某个位置。然后我想提取这个 .war 文件,然后更改位于提取的文件夹之一下的所有文件的权限。此后,我再次想在同一位置重建一个 .war 文件(在删除旧的 .war 文件之后),该文件最终将包含具有授予读/写权限的已编辑文件。然后我可以在我的 tomcat/webapps 下复制这个新的 .war 文件docker 内的文件夹进行部署。

为此,我编写了一个如图所示的 docker 文件

FROM tomcat:8.5-jdk11 
MAINTAINER derek

RUN mkdir -p /usr/src/temp
COPY SP-files/WAR/SP.war  /usr/src/temp/
RUN jar -xvf /usr/src/temp/SP.war
RUN rm -rf SP.war
RUN chmod 777 /usr/src/temp/WEB-INF/native/*

RUN jar -cvf /usr/src/temp/SP.war .
RUN cp /usr/src/temp/SP.war  /usr/local/tomcat/webapps/

在 docker 构建过程中,我收到错误 chmod: 无法访问 '/usr/src/temp/WEB-INF/native/*': 没有这样的文件或目录

确实,我爆炸的 SP.war 有文件夹 WEB-INF/native/{所有要编辑的文件都在这里}。我不知道为什么它无法找到 WEB- 下的文件INF/本机/文件夹。 还有其他方法可以在 docker 文件中指定 chmod 命令吗?我还附上了错误的屏幕截图。 ERROR-IMAGE Image showing -The folder WEB-INF/native/* is actually created

我也尝试过使用 运行 /bin/bash -c chmod +x /usr/src/temp/WEB-INF/native/* 但没有成功..

【问题讨论】:

    标签: linux docker dockerfile


    【解决方案1】:

    您最好的选择是将容器运行到它可以工作的地步。调试起来容易很多。

    然后运行:

    FROM tomcat:8.5-jdk11 
    MAINTAINER derek
    
    RUN mkdir -p /usr/src/temp
    COPY SP-files/WAR/SP.war  /usr/src/temp/
    RUN jar -xvf /usr/src/temp/SP.war
    RUN rm -rf SP.war
    

    之后运行容器并运行命令:

    ls /usr/src/temp/

    您将清楚地了解目录结构的实际情况。之后,您可以将路径调整为有效路径。祝你好运!

    【讨论】:

    • 问题是我在运行 RUN jar -xvf /usr/src/temp/SP.war 命令的位置除了 SP.war 之外找不到任何东西,虽然我可以看到那个 SP。在此命令运行期间,战争变得膨胀(我可以在我的 docker 终端上看到它)。此外,当我手动转到位置 /usr/src/temp/ 并运行 jar -xvf /usr/src/temp/SP.war 命令时,我可以看到分解的文件与 SP.war 一起出现在该位置。有没有人知道为什么在这个 docker 文件执行后爆炸的文件没有显示出来。
    • @AbhijotMann 请检查我编辑的答案。应该有帮助。还请发表反馈你是如何结束的。
    • @ 相反,我尝试按照您的建议进行操作。但我仍然只看到位于 /usr/src/temp/ 的 SP.war 文件
    • @ 相反感谢您的帮助,但我似乎至少现在找不到原因...
    猜你喜欢
    • 2019-09-26
    • 2018-04-23
    • 2014-07-19
    • 1970-01-01
    • 2016-06-16
    • 2018-02-02
    • 2021-05-02
    • 1970-01-01
    • 2020-10-17
    相关资源
    最近更新 更多