【发布时间】:2017-11-29 01:47:29
【问题描述】:
虽然如here 所述,OpenShift Container Platform 用户可以使用不同的数据库映像,但包括 Arangodb 在内的其他数据库映像尚不可用。我尝试通过 Openshift CLI 运行以下命令来安装 Arangodb official container from Dcokerhub:
oc new-app arangodb
但它没有成功运行并抛出以下错误:
chown: changing ownership of '/var/lib/arangodb3': Operation not permitted
与权限有关。默认情况下,OpenShift 使用任意分配的用户 ID 运行容器,而不是像 Support Arbitrary User IDs 部分中记录的那样以 root 身份运行容器。我试图将映像中进程可能写入的目录和文件的权限更改为归根组所有,并在 Dockerfile 中由该组读取/写入:
RUN chgrp -R 0 /some/directory \
&& chmod -R g+rwX /some/directory
这次它抛出以下错误:
FATAL cannot set uid 'arangodb': Operation not permitted
通过查看初始化 arangodb 的脚本(arangod 脚本),arangodb 以 arangodb:arangodb 运行,在 Openshift 的情况下应该(或可能!!!)arangodb:0。
现在,我真的很困惑。我已经阅读和搜索了很多:
- Getting any Docker image running in your own OpenShift cluster
- User namespaces have arrived in Docker!
- new-app fails on some official Docker images due to chown permissions
- 我还尝试通过查看mongodb image 进行逆向工程 由 openshift 提供。但最后,我变得更加困惑。
我也不想要求集群管理员允许项目以 root 身份运行:
# oadm policy add-scc-to-user anyuid -z default
我读得越多,我就越困惑。 在此之前有没有人可以为我提供一个可以在 Openshift 上运行的 docker 容器?
【问题讨论】:
-
我对此非常感兴趣,因为我想以同样的方式进行设置,但是 Arangodb 在 Google 的 Openshift 上缺乏结果让我望而却步。你见过this github repo吗?我知道不是专门针对 Openshift,但也许它可以提供帮助。
标签: docker openshift dockerfile arangodb