【发布时间】:2019-07-06 12:19:11
【问题描述】:
我正在尝试在 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:权限被拒绝
【问题讨论】:
-
你能检查一下该文件有什么确切的权限
docker run -it --rm image-name /bin/sh然后ls -ltrh /usr/share/metricbeat/ -
这是结果:-rwxr-x---
-
映像设计为以
root运行,但OpenShift 将以不同于root的分配用户ID 运行。你需要设计你的镜像来处理这个问题,或者放宽 OpenShift 的安全策略。 cookbook.openshift.org/users-and-role-based-access-control/… -
谢谢@mchawre,我会尝试构建整个项目。
标签: docker kubernetes openshift metricbeat