【问题标题】:How to mount docker volume in Azure Web App for containers?如何在 Azure Web App 中为容器装载 docker 卷?
【发布时间】:2020-03-11 16:08:11
【问题描述】:

我正在尝试在 Azure 应用服务中运行 KrakenD 映像。

KrakenD 需要将 json 配置文件 krakend.json 放入 /etc/krakend/(KrakenD 镜像基于 Linux Alpine

我使用以下 docker-compose 文件为容器创建了 Web App:

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 错误 - 容器创建失败 krakend_krakend_0_3032a936 与 System.AggregateException,一或 发生了更多错误。 (Docker API 以状态响应 代码=InternalServerError,响应={“消息”:“无效卷 规范:':/etc/krakend'"})(Docker API 响应状态 代码=InternalServerError,响应={“消息”:“无效卷 规范:':/etc/krakend'"})InnerException: Docker.DotNet.DockerApiException,Docker API 响应状态 代码=InternalServerError,响应={“消息”:“无效卷 规范:':/etc/krakend'"}

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

其他问题

  1. 存储安装中的安装路径是什么意思? - 我把值放在那里 /krankend

  2. 卷定义以 ${WEBAPP_STORAGE_HOME} in docs 开头,他们将其指定为

    卷: - ${WEBAPP_STORAGE_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' (open): 没有这样的文件或目录

【问题讨论】:

    标签: azure docker-compose azure-storage krakend


    【解决方案1】:

    终于用下面的 docker-compose 文件解决了

    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 存储

    【讨论】:

    • 我在使用 docker compaose 在 Azure 应用服务上设置特使代理时遇到了同样的问题,这对我有帮助。非常感谢
    • 仍在预览中
    【解决方案2】:

    这对我不起作用。我收到了Bind mount must start with ${WEBAPP_STORAGE_HOME}.

    这行得通。 docker-compose.yml

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

    卷定义:

    • 名称:vol1
    • 配置:基本
    • 存储帐户:...
    • 存储容器:...
    • 安装路径:/var/www/html/public

    【讨论】:

      猜你喜欢
      • 2017-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多