【问题标题】:permission denied error on tomcat docker image deployment to openshift container - /usr/local/tomcat/conf/web.xml (permission denied)在 tomcat docker 映像部署到 openshift 容器时出现权限被拒绝错误 - /usr/local/tomcat/conf/web.xml(权限被拒绝)
【发布时间】:2020-02-17 12:22:02
【问题描述】:

这是我的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)

【问题讨论】:

    标签: docker tomcat containers openshift chown


    【解决方案1】:

    openshift 站点上可能有一些政策不允许您以特权模式运行容器(例如,使用 root 帐户运行进程)

    您必须找出在哪个用户下启动 tomcat(请参阅 openshift 策略,询问您的集群管理员)并相应地调整所有必要的文件和文件夹权限,在 Dockerfile 中使用 chown 和/或 chmod。

    【讨论】:

      【解决方案2】:
      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"]
      

      首先您需要将CMD 命令替换为RUN 语句。

      另外,你是不是错过了/@@

      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/吗?

      【讨论】:

        【解决方案3】:

        我们必须添加权限才能以 root 启动 tomcat。

        oc adm policy add-scc-to-user anyuid -z default
        

        它应该可以工作。

        【讨论】:

          猜你喜欢
          • 2013-03-03
          • 1970-01-01
          • 2011-07-28
          • 2020-02-03
          • 2019-02-28
          • 2022-06-28
          • 1970-01-01
          • 2020-08-09
          • 2014-05-18
          相关资源
          最近更新 更多