我正在尝试设置一个网络应用程序,该应用程序通过文件共享到存储帐户来实现持久存储。
我遵循 Microsoft 文档中的各种指南,并且成功完成了大部分工作,我的应用程序具有持久存储。但现在,我想做的,是将卷映射到我的存储帐户。
我看到这个变量 ${WEBAPP_STORAGE_HOME}
可以在我的 docker-compose 中使用。
我的问题是,这个变量的值是多少? docs状态:
${WEBAPP_STORAGE_HOME}
is an environment variable in App Service that is mapped to persistent storage for your app.
我觉得这有点含糊。它是否知道自动映射我的路径映射?如果我有多个路径映射怎么办?我应该在配置
边栏选项卡的应用程序设置中设置该值吗?如果是这样,我需要指定什么,安装路径?
除此之外,我看到它的用法如下:
version: '3.3'
services:
wordpress:
image: mcr.microsoft.com/azuredocs/multicontainerwordpress
volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
ports:
- "8000:80"
restart: always
我在 docker-compose 中与命名卷一起使用。我认为没有必要指定类似的东西?
更新 在 @Jason Pan 的回答之后,我试着玩了一下这个坐骑。
我成功地使用以下 docker-compose 在应用服务上实现了持久存储:
# ... lines skipped for brevity
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
driver: local
但我想将数据保留在存储帐户上。我发现这可以通过以下方式实现:AppService/Configuration/Path Mappings
。
我的 Docker Compose
# ...
volumes:
- MyMountedPath:/var/lib/mysql
在这个 docker-compose 文件中,我有我的应用程序和 MySQL 镜像:准确地说是 mysql:8
。
我安装的路径如下:
名称:MyMountedPath;安装路径:/usr/local/mysql;类型:Azure 文件...
。
我在日志中收到以下错误:
2021-04-08T11:02:06.790578922Z chown: changing ownership of '/var/lib/mysql/': Operation not permitted
2021-04-08T11:02:12.785079208Z 2021-04-08 11:02:12+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.23-1debian10 started.
由于它适用于第一种方法,我怀疑我的路径映射的定义方式存在一些问题。这让我产生了更多问题:
- 我的装载路径是否需要存在于应用服务文件系统上?如果不是,我可以定义类似:
/foo/bar
吗? - 如果我有一个挂载路径名称
MyMountedPath
,我可以在 docker-compose 文件中指定类似的内容
volumes:
- MyMountedPath/foo:/something
基本上,在安装的路径中导航?
- 我需要将此路径挂载到我的存储帐户的文件存储中吗?或者应用服务需要存储某些内容时会创建此路径吗?
最佳答案
Example: In the App Service properties, I mounted an Azure File Share and gave the name
MyExternalStorage
In the docker compose configuration I have to set
volumes:
- MyExternalStorage:/var/www/html/contao
感谢TeddyDubois29的回答,希望也能帮到你。
Web App Docker Compose Persistent Storage
如下所示
在应用服务上安装 Azure 文件时,会为安装选择一个名称。
此名称是配置文件中 Volumes 参数的引用。
示例:
在应用服务属性中,我安装了 Azure 文件共享并命名为 MyExternalStorage
在 docker compose 配置中我必须设置
数量:
MyExternalStorage:/var/www/html/contao
关于Azure Web 应用程序在 docker-compose 中使用 WEBAPP_STORAGE_HOME 变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66993860/