我想使用自定义配置和 docker compose 运行一个 grafana 实例,但我面临权限问题。
我的配置位于:
./grafana/config/grafana.ini
当我尝试使用 docker compose 运行映像时,出现错误
logger=settings t=2023-12-21T21:19:12.374400182Z level=error msg="无法解析"/etc/grafana-config/grafana.ini":打开/etc/grafana-config/grafana.ini:权限被拒绝”
version: "3"
services:
grafana:
image: grafana/grafana:latest
entrypoint:
- /usr/share/grafana/bin/grafana-server
- --homepath=/usr/share/grafana
- --config=/etc/grafana-config/grafana.ini
volumes:
- ./grafana/config/grafana.ini:/etc/grafana-config/grafana.ini
ports:
- "3000:3000"
谢谢您的帮助!
所以错误是由于基于 Red Hat 的发行版上的 SELinux 或基于 Debian 的发行版上的 AppArmor 造成的。因此,我使用Red Hat,这里只描述SELinux的解决方案。
首先,您可以通过禁用 SELinux 来检查是否是问题所在:
setenforce 0
如果现在可以向docker添加未命名的卷,则说明你成功定位问题。现在您可以为 docker 容器禁用它,只需添加以下参数:
--security-opt label:disable
您也可以仅对某些目录禁用 SELinux,因为我已经链接了源代码,您可以在其中查看一些更深入的解释和示例。
学分:Datadog