openshift 上的权限被拒绝的 metricbeat

Permission denied metricbeat on openshift

我正在尝试在 openshift 上部署 metricbeat,经过几个小时的工作后我无法让它工作。 同样的图片在docker上正常运行。 谢谢

#Dockerfile

FROM docker.elastic.co/beats/metricbeat:7.2.0
COPY metricbeat.yml /usr/share/metricbeat/metricbeat.yml
USER root 
RUN mkdir /var/log/metricbeat \
    && chown metricbeat /usr/share/metricbeat/metricbeat.yml \
    && chown metricbeat /usr/share/metricbeat/metricbeat \
    && chmod go-w /usr/share/metricbeat/metricbeat.yml \
    && chown metricbeat /var/log/metricbeat

COPY entrypoint.sh /usr/local/bin/custom-entrypoint
RUN chmod +x /usr/local/bin/custom-entrypoint \
    && chown metricbeat /usr/local/bin/custom-entrypoint

ENV PATH="/usr/share/metricbeat:${PATH}"

USER metricbeat

ENTRYPOINT [ "/usr/local/bin/custom-entrypoint" ]

#entrypoint.sh
#!/usr/bin/env bash
/usr/share/metricbeat/metricbeat -e --strict.perms=false -c /usr/share    /metricbeat/metricbeat.yml  

错误:/usr/local/bin/custom-entrypoint:第 2 行:/usr/share/metricbeat/metricbeat:权限被拒绝

Dockerfile显示在构建镜像时设置目录结构和权限时切换到root用户,最后切换到USER metricbeat到运行容器。

但是,默认情况下,OpenShift 运行s 容器的用户具有随机 UID(来自预先配置的范围)。

一种选择是按照 Graham Dumpleton 的建议放宽安全策略。

为了使其在不放松安全性的情况下工作,我建议按如下方式更改所有权:

RUN chown -R metricbeat:root /usr/share/metricbeat \
 && chmod -R 0775 /usr/share/metricbeat

...或者在第一个RUN指令中合并以上两个命令。