我正在尝试在Azure App Service中运行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 with System.AggregateException,一个或 发生了更多错误。 (Docker API响应状态 code = InternalServerError,响应= {“ message”:“无效的音量 规范:':/ etc / krakend'“}))(Docker API响应状态 code = InternalServerError,响应= {“ message”:“无效的音量 规范:':/ etc / krakend'“})InnerException: Docker.DotNet.DockerApiException,Docker API响应状态 code = InternalServerError,响应= {“ message”:“无效的音量 规范:':/ etc / krakend'“}
2019-11-15 12:46:29.369错误-未启动多容器单元 成功
其他问题
在存储安装中安装路径是什么意思? -我在其中输入了 / krankend
卷定义以$ {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' (打开):没有这样的文件或目录
答案 0 :(得分: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存储
答案 1 :(得分:0)
这对我不起作用。我收到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
音量定义: