Java Tomcat不使用openshift原点。无法加载server.xml

Java Tomcat不使用openshift原点。无法加载server.xml,java,tomcat,openshift,Java,Tomcat,Openshift,我正在尝试使用 $oc new-app tomcat:latest 当我这么做的时候 $oc get pods 我越来越 NAME READY *STATUS* RESTARTS *AGE* tomcat-1-9j5qx 0/1 *CrashLoopBackOff* 16 *1h* 当我用$oc logs检查日志时,我得到了tomca

我正在尝试使用

$oc new-app tomcat:latest
当我这么做的时候

$oc get pods
我越来越

NAME                            READY     *STATUS*             RESTARTS   *AGE*

tomcat-1-9j5qx                  0/1       *CrashLoopBackOff*   16         *1h*
当我用$oc logs检查日志时,我得到了tomcat-1-9j5qx


不确定我应该做些什么来摆脱这个CrashLoopBackOff默认情况下,OpenShift使用一个随机的非root uid来运行pod,而这个
/usr/local/tomcat/conf/servers
只允许root读取它。运行此命令以允许OpenShift使用任何uid运行pods:

oc adm策略将scc添加到用户anyuid-z默认值

此策略更改只能由群集管理员完成。普通用户甚至项目管理员都无法完成此操作

因为您正在授予以root身份运行的权限,即使只在容器中运行,最好创建一个单独的服务帐户来运行需要额外权限的应用程序,而不要使用
默认的
服务帐户

例如:

$ oc create serviceaccount supremo
serviceaccount "supremo" created
$ oc adm policy add-scc-to-user anyuid -z supremo
$ oc patch dc/tomcat --patch '{"spec":{"template":{"spec":{"serviceAccountName": "supremo"}}}}'
deploymentconfig "tomcat" patched
您还应该只对您信任的第三方图像执行此操作。不要让任意映像以root用户身份运行

$ oc create serviceaccount supremo
serviceaccount "supremo" created
$ oc adm policy add-scc-to-user anyuid -z supremo
$ oc patch dc/tomcat --patch '{"spec":{"template":{"spec":{"serviceAccountName": "supremo"}}}}'
deploymentconfig "tomcat" patched