【发布时间】:2021-09-14 13:19:36
【问题描述】:
我正在使用 docker-compose 使用 InfluxDB、python 脚本和 Grafana 创建一个 Docker 容器网络,以收集和可视化不同网站的响应代码、查询时间和其他统计信息。
我正在使用带有卷的 Grafana 映像 7.3.0, 我已经修改了路径环境变量,所以我只需要使用一个卷来保存所有数据。
当我启动 Grafana 容器时,它会记录:
GF_PATHS_CONFIG='/etc/grafana/grafana.ini' is not readable.
GF_PATHS_DATA='/etc/grafana/data' is not writable.
GF_PATHS_HOME='/etc/grafana/home' is not readable.
You may have issues with file permissions, more information here: http://docs.grafana.org/installation/docker/#migration-from-a-previous-version-of-the-
docker-container-to-5-1-or-later
mkdir: can't create directory '/etc/grafana/plugins': Permission denied
但问题是,我没有从低于 5.1 的版本迁移,我什至根本没有迁移!
所以我尝试按照他们的指示更改文件的权限,但没有成功。
我尝试在 docker-compose 中设置用户 ID,但没有帮助。
(如文档中所述 472 == post 5.1, 104 == pre 5.1 但两者均无效)
我什至无法手动更改权限(顺便说一句,这不是一个令人满意的解决方案),因为容器正在崩溃。
我通常不问问题,因为他们已经有了答案,但我没有看到有人在使用 7.3.0 时遇到这个问题,所以我想是时候发光了哈哈。
这是我的 docker-compose.yml(只有 grafana 部分)
version: '3.3'
services:
grafana:
image: grafana/grafana:7.3.0
ports:
- '3000:3000'
volumes:
- './grafana:/etc/grafana'
networks:
- db-to-grafana
depends_on:
- db
- influxdb_cli
environment:
- GF_PATHS_CONFIG=/etc/grafana/grafana.ini
- GF_PATHS_DATA=/etc/grafana/data
- GF_PATHS_HOME=/etc/grafana/home
- GF_PATHS_LOGS=/etc/grafana/logs
- GF_PATHS_PLUGINS=/etc/grafana/plugins
- GF_PATHS_PROVISIONING=/etc/grafana/provisioning
user: "472"
非常感谢您的潜在帮助!
编辑:我一直想知道最新版本(8.0)中是否有 grafana 用户,我认为使用 Dockerfile 为 grafana 构建主目录可能是我只需要找到该用户的解决方案。
【问题讨论】:
-
@JanGaraj 感谢您的帮助!我已经看过那个文档,但我没有迁移,我已经尝试过这个策略,但我想我可能做错了。你能澄清你的观点吗?再次感谢
-
在compose中省略
user: "472"参数会发生什么?我猜它应该以root身份运行,你还不能访问它吗?另一种解决方案可能是将您的 grafana 文件夹从 /etc/ 移动到另一个文件夹并相应地更改GF_PATHS_*envars。要在开始时更改权限,您可以覆盖 grafana dockerfile 或入口点,您需要 grafana 文件源代码并修改其入口点 -
@Yamuk 当我省略用户时,这是同样的问题,无论如何我找到了解决方案,问题来自我的卷,它是由 root 用户创建的,因此对 grafana 不可用。菜鸟犯了一点错误,所以我最后所做的就是 chown -R
/path/to/volume 和 chmod -R 777 /path/to/volume。并删除 env 变量,因为它们与 grafana 设置有关。我会尽快发布答案。
标签: docker docker-compose permissions grafana userid