用Grafana docker镜像忽略了custom.ini

时间:2019-06-11 14:40:02

标签: docker docker-compose grafana

我对grafana docker镜像有一个奇怪的问题:它完全忽略了我的custom.ini文件。

目标是将app_mode设置为无需环境变量即可进行开发(否则可以在docker-compose中使用GF_DEFAULT_APP_MODE: development)。

这是我的docker-compose有趣的部分:

  grafana:
image: grafana/grafana:6.2.2
ports:
  - "3000:3000"
user: ${ID}
volumes:
  - "$PWD/data:/var/lib/grafana"
  - "$PWD/custom.ini:/etc/grafana/custom.ini"
  - "$PWD/custom.ini:/usr/share/grafana/conf/custom.ini"
  - "$PWD/custom.ini:/usr/share/grafana/conf/sample.ini"

如您所见,我尝试了很多位置(以防万一)。

我使用以下命令部署堆栈:ID=$(id -u) docker-compose up -d

除了配置问题外,Grafana的运行效果非常好。 我可以在容器中正确看到我的挂载,并且custom.ini文件的格式正确(并且我没有忘记删除注释符号;

以下是日志(我们看不到有关custom.ini或sample.ini的提及):

Attaching to dev_grafana_1
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Starting Grafana" logger=server version=6.2.2 commit=07540df branch=HEAD compiled=2019-06-05T13:04:21+0000
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config loaded from" logger=settings file=/usr/share/grafana/conf/defaults.ini
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config loaded from" logger=settings file=/etc/grafana/grafana.ini
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.data=/var/lib/grafana"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.logs=/var/log/grafana"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.plugins=/var/lib/grafana/plugins"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.paths.provisioning=/etc/grafana/provisioning"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from command line" logger=settings arg="default.log.mode=console"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_DATA=/var/lib/grafana"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_LOGS=/var/log/grafana"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PLUGINS=/var/lib/grafana/plugins"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Config overridden from Environment variable" logger=settings var="GF_PATHS_PROVISIONING=/etc/grafana/provisioning"
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Path Home" logger=settings path=/usr/share/grafana
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Path Data" logger=settings path=/var/lib/grafana
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Path Logs" logger=settings path=/var/log/grafana
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Path Plugins" logger=settings path=/var/lib/grafana/plugins
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="Path Provisioning" logger=settings path=/etc/grafana/provisioning
grafana_1          | t=2019-06-11T14:20:44+0000 lvl=info msg="App mode production" logger=settings

我使用图片grafana / grafana:6.2.2

感谢您的帮助!

注意:我还尝试了很多时间来重新启动甚至重新创建容器。

2 个答案:

答案 0 :(得分:0)

也遇到了这个问题。显然/etc/grafana/grafana.ini是deb或rpm软件包上的自定义文件。

  

注意。如果使用deb或rpm软件包安装了Grafana,则配置文件位于/etc/grafana/grafana.ini。此路径是在Grafana init.d脚本中使用--config文件参数指定的。

因此,在“卷”部分中,将其更新为,然后它将选择您的自定义设置:

volumes:
  - "$PWD/data:/var/lib/grafana"
  - "$PWD/grafana.ini:/etc/grafana/grafana.ini"

答案 1 :(得分:0)

我刚刚在我的Grafana容器上修复了这个问题,所以也许这对您有所帮助。我要设置的只是SMTP配置。我在Windows上运行Docker,因此您当然需要根据需要更改脚本。我也将数据重定向到容器外部,因此包含了配置。

docker run -d -p 3000:3000 --name=grafana `
-v C:/DockerData/Grafana:/var/lib/grafana `
-v C:/DockerData/Grafana/custom.ini:/etc/grafana/grafana.ini `
grafana/grafana

我从powershell启动,因此这就是为什么`用于继续下一行的原因。此外,它不喜欢本地文件也称为grafana.ini。只是从此开始。因此,您会看到本地文件是custom.ini,但是我覆盖了grafana.ini文件。希望对您有所帮助。