В разрешении отказано в разрешении метрики на openshift - PullRequest
0 голосов
/ 06 июля 2019

Я пытаюсь развернуть metricbeat в openshift, и после многих часов работы у меня не получается, чтобы он работал. Это же изображение нормально работает в докере. Спасибо

#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: разрешение отклонено

1 Ответ

0 голосов
/ 08 июля 2019

Dockerfile показывает переключение на пользователя root при настройке структуры каталогов и разрешений при построении образа и, наконец, переключение на USER metricbeat для запуска контейнера с ним.

Однако по умолчанию OpenShift запускает контейнеры с пользователем со случайным UID (из предварительно настроенного диапазона).

Один из вариантов - ослабить политику безопасности, как предложил Грэм Дамплтон.

Чтобы это работало без ослабления безопасности, я предлагаю сменить владельца следующим образом:

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

... или включить две вышеупомянутые команды в первую инструкцию RUN.

...