无法在Openshift上使用root用户运行应用程序
无法在Openshift上使用root用户运行应用程序,openshift,openshift-origin,Openshift,Openshift Origin,我需要在Openshift origin上使用tomcat:最新图像。我知道此映像以root用户的身份运行,但我希望它通过向开发人员用户授予群集管理权限来工作: $ oadm policy add-cluster-role-to-user cluster-admin developer 不幸的是,我仍然得到: Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina load WARNING: Unable to load se
我需要在Openshift origin上使用tomcat:最新图像。我知道此映像以root用户的身份运行,但我希望它通过向开发人员用户授予群集管理权限来工作:
$ oadm policy add-cluster-role-to-user cluster-admin developer
不幸的是,我仍然得到:
Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/local/tomcat/conf/server.xml]
Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina load
WARNING: Permissions incorrect, read permission is not allowed on the file.
Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina load
WARNING: Unable to load server configuration from [/usr/local/tomcat/conf/server.xml]
Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina load
WARNING: Permissions incorrect, read permission is not allowed on the file.
Jan 26, 2017 8:05:34 AM org.apache.catalina.startup.Catalina start
SEVERE: Cannot start server. Server instance is not configured.
我有什么办法可以绕开这件事吗?
谢谢OpenShift本身中有一些用户(如您的示例中的
developer
)和用于运行容器的用户。他们是不同的
您使用的命令用于第一类用户。您需要配置安全上下文约束(SCC),以允许developer
使用任何UID运行容器(这里我指的是主机操作系统中存在的系统用户)
您可以在文档中找到更多信息。通过使用Docker构建策略,您可以在不提升权限的情况下使用正式的tomcat映像。您必须使
root
组拥有的所有tomcat文件支持任意用户ID部分,如中所述
我有下面的docker文件和一个正式的tomcat alpine映像,在这里我删除了所有默认的应用程序,递归地更改tomcat目录的所有权,然后在webapps中复制我的工件
FROM tomcat:jre8-alpine
RUN rm -rf /usr/local/tomcat/webapps/* && \
chgrp -R 0 /usr/local/tomcat/ && \
chmod -R g=u /usr/local/tomcat/
ADD ROOT.war /usr/local/tomcat/webapps/
只需确保您的应用程序没有将日志写入
/var/log
或默认tomcat文件夹之外的某个位置,或者以类似方式调整这些文件夹的所有权。非常感谢您的建议