无法在 azure 应用服务中挂载卷?

Tec*_*ain 6 azure amazon-web-services docker azure-app-service-plans

我正在尝试通过 docker 容器在 azure 应用服务上部署 Node SDK。在我的 sdk 中,我已经安装了一个连接文件并为此编写了一个 docker-compose。但是当我通过 azure 部署它时,我得到以下错误。

InnerException: Docker.DotNet.DockerApiException, Docker API 响应状态码=InternalServerError, response={"message":"invalid volume specification: ':/usr/src/app/connection.json'"}

docker-compose.yml

version: '2'

services:
  node:
    container_name: node
    image: dhiraj1990/node-app:latest
    command: [ "npm", "start" ]
    ports:
      - "3000:3000"
    volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot/connection.json:/usr/src/app/connection.json
Run Code Online (Sandbox Code Playgroud)

此路径中存在 connection.json /site/wwwroot

文件

FROM node:8

# Create app directory
WORKDIR /usr/src/app

# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./

RUN npm install
# If you are building your code for production
# RUN npm ci --only=production

# Bundle app source
COPY . .

EXPOSE 3000
Run Code Online (Sandbox Code Playgroud)

请告诉我是什么问题?

Cha*_* Xu 9

更新:

问题是你不能将文件挂载到持久存储,它应该是一个目录。所以正确的音量应该设置如下:

volumes:
      - ${WEBAPP_STORAGE_HOME}/site/wwwroot:/usr/src/app
Run Code Online (Sandbox Code Playgroud)

并且您还需要通过设置环境变量在您的 Web 应用程序中为容器启用持久性存储WEBSITES_ENABLE_APP_SERVICE_STORAGE=TRUE。有关更多详细信息,请参阅添加持久存储

持久存储仅用于从容器中持久存储数据。如果您想将文件共享到容器,我建议您将 Azure 文件共享挂载到容器。但是你需要注意这里的警告:

将 Web 应用程序中的现有目录链接到存储帐户将删除目录内容。

因此,您需要将 Azure 文件共享挂载到一个没有必要文件的新目录。您可以在应用服务上的容器配置 Azure 文件中获取有关步骤的更多详细信息。它不仅支持 Windows 容器,还支持 Linux 容器。