如何在 openshift 容器上设置正确的写入权限?

问题描述 投票:0回答:1

我正在部署一个java应用程序,但它需要写入权限,我想知道什么是批准的方法?现在我只是制作一个新的 docker 映像,它采用旧映像并向需要进行写入的文件夹添加权限:

RUN chgrp -R 0 /application && \
    chmod -R g=u /application

USER 1001
RUN chown -R 1001:0 /application

RUN chmod 775 /application

但是这样,每次我没有足够的权限时,我都必须制作一个docker镜像,所以这对我来说似乎不是很有效。我想到的另一种方法可能是创建一个 initContainer,在其中创建文件夹并为其提供所需的权限,然后将其连接到带有卷的实际容器,但这不仅需要我授予 root 权限:

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

配置的大小也会膨胀,目前还不起作用。

kubernetes openshift redhat
1个回答
0
投票

您从根本上遇到了这样一个问题:容器本质上是不可变的。如果您想要写入权限,那么您正在写入的数据必须放置在某处。而且它不可能是图像本身,因为图像不会改变。

处理这种情况的正确方法将取决于您正在写入的数据。最简单的情况是“emptyDir”,其中您的映像在主机上安装一个目录,并将数据写入其中。这本质上是创建一次性存储,您可以在其中写入数据,但不能保证数据在重新创建的 Pod 中仍然存在。

如果这还不够,请查看存储文档:https://docs.openshift.com/container-platform/4.14/storage/index.html。根据您运行 OpenShift 的位置,有很多关于如何为容器分配存储的选项。

© www.soinside.com 2019 - 2024. All rights reserved.