如何在Azure Web App中为容器装载docker卷?

如何在Azure Web App中为容器装载docker卷?,azure,docker-compose,azure-storage,krakend,Azure,Docker Compose,Azure Storage,Krakend,我正在尝试在Azure应用程序服务中运行KrakendImage KrakenD需要将json配置文件KrakenD.json放入/etc/KrakenD/(KrakenD映像基于Linux) 我使用以下docker compose文件为容器创建了Web应用程序: version: "3" services: krakend: image: devopsfaith/krakend:latest volumes: - ${WEBAPP_STORAGE_HOME}/s

我正在尝试在Azure应用程序服务中运行KrakendImage

KrakenD需要将json配置文件KrakenD.json放入/etc/KrakenD/(KrakenD映像基于Linux)

我使用以下docker compose文件为容器创建了Web应用程序:

version: "3"
services:
  krakend:
    image: devopsfaith/krakend:latest
    volumes:
      - ${WEBAPP_STORAGE_HOME}/site/krakend:/etc/krakend
    ports:
      - "8080:8080"
    restart: always
添加了带有blob容器的存储帐户,其中上载了示例kraken.json文件

在应用程序配置中,我添加了如下路径映射:

但看起来卷的安装不正确

2019-11-15 12:46:29.368错误-为创建容器失败 带System.AggregateException的krakend_krakend_0_3032a936,一个或多个 发生了更多的错误。(Docker API以状态响应 代码=InternalServerError,响应={“消息”:“无效卷” 规范:':/etc/krakend'})(Docker API以状态响应 代码=InternalServerError,响应={“消息”:“无效卷” 规范:':/etc/krakend'})内部异常: Docker.DotNet.Docker异常,Docker API以状态响应 代码=InternalServerError,响应={“消息”:“无效卷” 规格:':/etc/krakend'}

2019-11-15 12:46:29.369错误-多容器单元未启动 成功地

其他问题

  • 存储装载中的装载路径是什么意思我把它放在那里了

  • 卷定义以他们指定的${WEBAPP\u STORAGE\u HOME}开头

    卷数: -${WEBAPP\u STORAGE\u HOME}/site/wwwroot:/var/www/html

  • 所以我做了类比,并尝试了所有3种可能的途径

    ${WEBAPP_STORAGE_HOME}/site/wwwroot/krakend
    ${WEBAPP_STORAGE_HOME}/site/krakend
    ${WEBAPP_STORAGE_HOME}/krakend
    
    但是运气不好——仍然会出错

    分析配置文件时出错:'/etc/krakend/krakend.json' (打开):没有这样的文件或目录


    最终解决了以下docker撰写文件的问题

    version: "3"
    services:
      krakend:
        image: devopsfaith/krakend:latest
        volumes:
          - volume1:/etc/krakend
        environment:
         WEBSITES_ENABLE_APP_SERVICE_STORAGE: TRUE
        ports:
          - "8080:8080"
        restart: always
    
    其中,volume1是一个blob存储,安装方式如下


    这对我不起作用。我得到的
    绑定装载必须从${WEBAPP\u STORAGE\u HOME}开始。

    这起作用了。docker-compose.yml

    version: "3"
    services:
    
      backend:
        image: xxxx
        ports:
          - 80:80
        volumes:
          - vol1:/var/www/html/public
    
    volumes: 
       vol1:
          driver: local
    
    卷定义:

    • 姓名:vol1
    • 配置:基本
    • 存储帐户:
    • 存储容器:
    • 挂载paht:/var/www/html/public

    为我工作。ThanksI在使用docker Compose在Azure应用程序服务上设置特使代理时遇到了同样的问题,这对我很有帮助。谢谢,预览中还有很多