gpt4 book ai didi

azure - 为在 Azure 应用服务 Linux 上运行的容器创建卷

转载 作者:行者123 更新时间:2023-12-03 04:48:42 26 4
gpt4 key购买 nike

我们有一个 SpringBoot 应用程序,需要位于“/secrets/app.keystore.jks”的 keystore 文件才能运行。

我们希望在 Azure 应用服务 Linux 实例上的容器中运行该应用。出于安全原因,我们不想将“/secrets/app.keystore.jks”文件包含在容器本身中。相反,我们设法将文件上传到应用服务上的“/home/site/wwwroot/secrets/”文件夹。

我们使用以下命令来启动应用服务上的容器

docker run -d myacr.azurecr.io/myAPp:latest -p 80:80 --name myApp 
-e WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE -v /home/site/wwwroot/secrets:/secrets

在应用服务的日志中,我们收到错误:

java.lang.IllegalStateException: java.io.IOException: Could not open/secrets/app.keystore.jks as a file, class path resource, or URL.

在我看来,卷未设置,应用程序无法访问文件“/secrets/app.keystore.jks”

有人知道如何设置卷以便容器中的应用程序可以访问主机上的文件吗?

最佳答案

有两种方法可以实现您的目的。一种是将环境变量 WEBSITES_ENABLE_APP_SERVICE_STORAGE 设置为 true,您可以将持久卷挂载到容器,如下所示,在 docker-compose 文件中:

volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot/secrets:/secrets

获取更多详细信息here .

另一种方法是您可以将 Azure 存储挂载到容器并将文件上传到存储。按照步骤 here .

关于azure - 为在 Azure 应用服务 Linux 上运行的容器创建卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64019780/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com