[英]permission denied error on tomcat docker image deployment to openshift container - /usr/local/tomcat/conf/web.xml (permission denied)
這是我的Dockerfile
內容。 當我在本地運行它時,它運行良好,但是當我嘗試將它部署在openshift container
它會拋出permission denied
錯誤
FROM tomcat:8.0.36-jre8
CMD groupadd -r myuser -g 501
CMD useradd -d /home/myuser -u 501 -m -s /bin/bash -g myuser myuser
CMD chown -R myuser:myuser /usr/local/tomcat
ADD target/ui-1.0.war /usr/local/tomcat/webapps/
ADD docker-tomcat-conf/server.xml /usr/local/tomcat/conf/
ADD docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF
EXPOSE 8080
CMD chmod +x /usr/local/tomcat/bin/catalina.sh
ENTRYPOINT ["catalina.sh", "run"]
和錯誤
Parse error in application web.xml file at file:/usr/local/tomcat/conf/web.xml
java.io.FileNotFoundException: /usr/local/tomcat/conf/web.xml (Permission denied)
at java.io.FileInputStream.open0(Native Method)
FROM tomcat:8.0.36-jre8
RUN groupadd -r myuser -g 501
RUN useradd -d /home/myuser -u 501 -m -s /bin/bash -g myuser myuser
RUN chown -R myuser:myuser /usr/local/tomcat
ADD target/ui-1.0.war /usr/local/tomcat/webapps/
ADD docker-tomcat-conf/server.xml /usr/local/tomcat/conf/
ADD docker-tomcat-conf/web.xml /usr/local/tomcat/conf/
EXPOSE 8080
RUN chmod +x /usr/local/tomcat/bin/catalina.sh
ENTRYPOINT ["catalina.sh", "run"]
首先,您需要用RUN
語句替換CMD
命令。
此外,您是不是錯過了/
在
docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF
我想這應該是
docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF/
或者
docker-tomcat-conf/web.xml /usr/local/tomcat/webapps/manager/WEB-INF/web.xml
不應該/usr/local/tomcat/webapps/manager/WEB-INF/
是/usr/local/tomcat/conf/
嗎?
openshift 站點上可能有一些策略不允許您在特權模式下運行容器(例如使用 root 帳戶運行進程)
您必須找出 tomcat 是在哪個用戶下啟動的(請參閱 openshift 策略,詢問您的集群管理員)並使用 Dockerfile 中的 chown 和/或 chmod 相應地調整所有必要的文件和文件夾權限。
我們必須添加權限才能使用 root 啟動 tomcat。
oc adm policy add-scc-to-user anyuid -z default
它應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.