sea*_*717 0 azure azure-container-service azure-appservice
我们有一个 SpringBoot 应用程序,需要位于“/secrets/app.keystore.jks”的密钥库文件才能运行。
我们希望在 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
Run Code Online (Sandbox Code Playgroud)
在应用程序服务的日志中,我们有错误:
java.lang.IllegalStateException: java.io.IOException: 无法将 /secrets/app.keystore.jks 作为文件、类路径资源或 URL 打开。
在我看来,卷未设置,应用程序无法访问文件“/secrets/app.keystore.jks”
有谁知道如何设置卷以便容器中的应用程序可以访问主机上的文件?
有两种方法可以实现您的目的。一种是将环境变量设置WEBSITES_ENABLE_APP_SERVICE_STORAGE为true,您可以将持久卷安装到容器中,如下所示,在 docker-compose 文件中:
volumes:
- ${WEBAPP_STORAGE_HOME}/site/wwwroot/secrets:/secrets
Run Code Online (Sandbox Code Playgroud)
在此获取更多详细信息。
另一种方法是,您可以将 Azure 存储挂载到容器并将文件上传到存储。请按照此处的步骤操作。
| 归档时间: |
|
| 查看次数: |
4176 次 |
| 最近记录: |