Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 从dockerfile生成docker期间运行chmod-错误_Linux_Docker_Dockerfile - Fatal编程技术网

Linux 从dockerfile生成docker期间运行chmod-错误

Linux 从dockerfile生成docker期间运行chmod-错误,linux,docker,dockerfile,Linux,Docker,Dockerfile,我正在尝试将.war文件从主机桌面复制到docker容器中的某个位置。然后我想解压缩这个.war文件,然后更改对其中一个解压缩文件夹下的所有文件的权限。此后,我再次希望在同一位置重建一个.war文件(在删除旧的.war文件后),该文件最终将包含被授予读/写权限的已编辑文件。然后,我可以将这个新的.war文件复制到docker内的tomcat/webapps文件夹下进行部署 为此,我编写了一个docker文件,如图所示 FROM tomcat:8.5-jdk11 MAINTAINER derek

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

为此,我编写了一个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/native/folder下的文件。 是否有其他方法在docker文件中指定chmod命令?我还附上了一个错误截图。

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

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

然后运行以下命令:

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/


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

问题是,我在运行jar-xvf/usr/src/temp/SP.war命令的位置上除了SP.war之外找不到任何东西,尽管我可以看到SP.war在这个命令运行期间膨胀(我可以在docker终端上看到)。另外,当我手动转到位置/usr/src/temp/并运行jar-xvf/usr/src/temp/SP.war命令时,我可以看到分解文件与SP.war一起出现在该位置。有人知道为什么在docker文件执行后分解的文件没有显示吗。@AbhijotMann请检查我编辑的答案。应该有帮助。请同时发布反馈,你是如何结束的。@相反,我试着按照你建议的方式来做。但是我仍然在/usr/src/temp/@位置只看到了SP.war文件,谢谢你的帮助,但我至少现在还没有找到原因。。。