在 dockerfile 中指定 docker 卷时,docker 会在容器启动时创建一个卷。正如预期的那样,当在预期路径登录到容器时,定义的目录就在那里。 但是,当在适用于 Linux 的 Azure Webapp 中使用相同的镜像时,登录到容器时,预期的路径和文件不存在。
azure webapp 是否不支持此功能,或者是否有一些我缺少的设置需要启用? 我不是在谈论安装文件系统/存储帐户,如文档 here 所示。 .
最佳答案
那是行不通的。另一种方法是启用持久存储并创建Docker Compose文件,您可以在其中指定卷,即使您只有一个容器也是如此。然后,您可以使用多容器选项并上传 YAML 文件。
通过设置应用程序设置WEBSITES_ENABLE_APP_SERVICE_STORAGE = TRUE来启用持久存储。您可以从门户或使用 CLI 来执行此操作。
az webapp config appsettings set -g myResourceGroup -n <app-name> --settings WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE
${WEBAPP_STORAGE_HOME} 环境变量将指向运行容器的虚拟机的 /home 文件夹。用它来映射带有卷的文件夹。
version: '3.3'
services:
wordpress:
image: myimage
volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot:/var/www/html
ports:
- "80:80"
restart: always
关于azure - Docker 卷与 azure webapp 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71922613/