如何使用 Docker-compose 文件在 Azure WebApp 上部署 Grafana?

Posted

技术标签:

【中文标题】如何使用 Docker-compose 文件在 Azure WebApp 上部署 Grafana?【英文标题】:How I deploy Grafana on Azure WebApp with Docker-compose file? 【发布时间】:2021-07-11 05:59:25 【问题描述】:

我想使用 Grafana 将监控仪表板部署为使用 Azure-cloud 的 Web 应用程序,并与我的团队成员共享。

但我发现了一些问题: (1) 在Docker-compose中,Grafana需要volumes来存储数据。 (2) 所以我做了 Azure Storage & File share。并将此存储路径映射到 Webapp。

存储挂载如下。

姓名:姓名姓名 映射路径:/var/lib/grafana 格式:AzureFiles (3) 这是我的 docker-compose.yml
services: 
  grafana:
    image: grafana/grafana
    ports: 
      - 3001:3000
    volumes:
      - namename:/var/lib/grafana
(4) 在我构建它之后,我的 webapp 关闭了,并显示了下面的屏幕。

enter image description here

错误日志是这样的。

service init failed: migration failed: database is locked
Logging is not enabled for this container.

我不知道是什么问题,以及如何解决它。 另外,我想附加存储并检查其内部。

我该怎么做?

【问题讨论】:

关于这个问题的任何更新?它解决了你的问题吗? 抱歉我检查晚了。我按照你说的重写了路线,它奏效了!感谢您的回答。 【参考方案1】:

当您将 Azure 文件共享装载到容器时,您装载的路径将具有根所有者和组。但是镜像是用grafana这个用户运行的,所以没有迁移文件的权限。

解决办法是挂载到镜像中不存在的新路径。例如,路径/var/lib/grafana-data。那么它会运作良好。然后你需要自己将数据从路径/var/lib/grafana复制到路径/var/lib/grafana上面持久化它们。

【讨论】:

以上是关于如何使用 Docker-compose 文件在 Azure WebApp 上部署 Grafana?的主要内容,如果未能解决你的问题,请参考以下文章

docker学习 docker-compose使用示例

如何在 AWS Elastic Container Service 中使用现有的 docker-compose.yml 文件?

docker-compose安装

docker-compose:如何立即查看文件更改(开发时)

如何在从 docker-compose 调用的 .sh 文件中使用 .NET Core 机密

如何使用 NGINX、PHP-FPM 在 docker-compose.yml 文件中加载 mysqli 扩展