我创建了一个触发器类"mypackage.myclass",它在标准cassandra容器上运行良好。我已经将所有内容打包到/etc/cassandra/triggers/my-fat-jar.jar中的一个jar文件中(权限为root 644(
但是,当我在Red Hat OpenShift CP下部署相同的容器时,无法加载该触发器。它只是简单地说:
‘<stdin>:1:InvalidRequest: Error from server: code=2200 [Invalid query] message="Trigger class 'mypackage.myclass' couldn't be loaded"’
我不知道那个错误是从哪里来的。。你知道在哪里看吗?
谢谢。
使用的版本:[cklsh 6.0.0 | Cassandra 4.0.1 | CQL规范3.4.5 |本机协议v5]
如果不详细了解您是如何构建映像和文件权限的,很难确定,但由于这可能是文件权限问题,您可能会遇到有关任意用户ID的Openshift安全策略问题。理论上,644权限应该意味着这不是问题,但也许任意用户在访问目录本身时遇到了问题。
(此外,根据Dockerfile中的内容,您可以尝试添加anyuid
SCC,以验证这是否是问题的原因。(
一般来说,我会浏览OpenShift平台特定的指导方针,因为这将为您提供确保文件权限有效的具体说明。
我也只需要使用oc debug
在有问题的容器中获取一个shell,并验证对相关目录/文件的访问权限。