Docker 上的 Grafana 7.3.0 存在权限问题

Loy*_*eux 6 permissions userid docker grafana docker-compose

我使用 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
Run Code Online (Sandbox Code Playgroud)

但事情是这样的,我不会从 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"
Run Code Online (Sandbox Code Playgroud)

非常感谢您的潜在帮助!

编辑:我一直想知道最新版本(8.0)中是否有grafana用户,我认为使用Dockerfile为grafana构建一个主目录可能是我只需要找到该用户的解决方案。

Loy*_*eux 12

我来这里是为了结束这个话题。

所以这是一个菜鸟错误,但我不可能知道。问题来自于 Grafana 不会 chown 和 chmod 卷文件夹。该错误不会发生,但它不会工作,因为它不保存数据。

解决方案是删除环境变量并更改包含该卷的本地“./grafana”文件夹的权限。

所以我做了

chown -R <personal local user> /path/to/local/volume/folder && \
chmod -R 777 /path/to/local/volume/folder
Run Code Online (Sandbox Code Playgroud)

现在它可以正常工作这是我的新 docker compose

   docker-compose.yml   
    grafana:
        image: grafana/grafana
        ports:
          - '3000:3000'
        volumes:
          - './grafana:/var/lib/grafana'
        networks:
          - db-to-grafana
        depends_on:
          - db
          - influxdb_cli
Run Code Online (Sandbox Code Playgroud)

谢谢大家四位的帮助!