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)
请告诉我是什么问题?
更新:
问题是你不能将文件挂载到持久存储,它应该是一个目录。所以正确的音量应该设置如下:
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 容器。
归档时间: |
|
查看次数: |
2172 次 |
最近记录: |