我正在尝试将.war文件从主机桌面复制到Docker容器内的某个位置。然后,我想提取此.war文件,然后更改对所提取文件文件夹之一下的所有文件的权限。之后,我再次想在相同位置重建一个.war文件(删除旧的.war文件之后),该文件最终将包含具有授予的读/写权限的已编辑文件。然后可以将该新的.war文件复制到我的tomcat / webapps下在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 / native /文件夹。 还有其他方法可以在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 / *,但没有成功。
答案 0 :(得分:0)
您最好的选择是将容器运行到可以工作的地步。易于调试。
然后运行:
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/
您将清楚了解目录结构的实际运行情况。之后,您可以将路径调整为有效路径。祝你好运!