为什么 Azure 容器在启动时无法访问已安装的卷?

Azure container can't access a mounted volume on startup why?

我在 Azure 容器实例上的容器中使用卷装载时遇到问题。

我可以毫无问题地将卷安装到我的容器中。这是我正在使用的 az cli 命令,它运行良好。我遵循了 this 教程

az container create --resource-group mydemo --name paulwx --image containerregistry.azurecr.io/container:master --registry-username username --registry-password password --dns-name-label paulwx --ports 8080 --assign-identity --azure-file-volume-account-name accountname --azure-file-volume-account-key secretkey  --azure-file-volume-share-name myshare --azure-file-volume-mount-path /opt/application/config

效果很好,我可以附加到容器控制台并访问共享卷。我可以触摸文件和阅读文件。

当我尝试让应用程序在启动时读取此文件夹(以获取其应用程序配置)时出现问题。同样,该命令几乎相同,只是应用程序被标记为通过名为 SPRING_CONFIG_LOCATION.

的 ENV 变量从卷挂载中读取配置。
az container create --resource-group mydemo --name paulwx --image containerregistry.azurecr.io/container:master --registry-username username --registry-password password --dns-name-label paulwx --ports 8080 --assign-identity --azure-file-volume-account-name accountname --azure-file-volume-account-key secretkey  --azure-file-volume-share-name myshare --azure-file-volume-mount-path /opt/application/config --environment-variables SPRING_CONFIG_LOCATION=file:/opt/application/config/

容器现在因以下错误而终止。

Error: Failed to start container paulwx, Error response: to create containerd task: failed to mount container storage: guest modify: guest RPC failure: failed to mount container root filesystem using overlayfs /run/gcs/c/e51f86c414ae83c7c279a4252864a381399069d358f5d2303c97c630e17b049f/rootfs: no such file or directory: unknown

所以我可以挂载一个卷,只要我在启动时不访问它。我在这里错过了一些非常基本的东西吗?当然,拥有卷挂载意味着挂载点将在容器启动时可用。

卷安装类型是 samba 和 Standard_LRS。

所以长话短说,这里的问题是应用程序在启动时被配置为从一个文件夹中读取 属性 文件,该文件夹不在我预期的位置。

应用程序未能启动,因为未在预期找到 them.The 的地方找到 application.properties Azure 错误消息是一个转移话题,根本没有反映问题。应用程序记录器没有正确地记录到标准输出,所以我实际上错过了应用程序日志,其中明确指出 application.properties 未找到。