3

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

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

我使用以下 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 错误 - krakend_krakend_0_3032a936 的容器创建失败,出现 System.AggregateException,出现一个或多个错误。(Docker API 响应状态码=InternalServerError, response={"message":"invalid volume specification: ':/etc/krakend'"})(Docker API 响应状态码=InternalServerError, response={"message":"无效的卷规范:':/etc/krakend'"}) InnerException:Docker.DotNet.DockerApiException,Docker API 响应状态码=InternalServerError, response={"message":"无效的卷规范:':/etc/krakend' "}

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

附加问题

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

  2. 卷定义在他们指定为的文档中以 ${WEBAPP_STORAGE_HOME} 开头

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

4

2 回答 2

7

最后用以下 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存储,如下所示

在此处输入图像描述

于 2019-11-15T19:10:54.907 回答
0

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

这行得通。码头工人-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
于 2020-09-11T12:29:44.610 回答