【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误

azure,应用服务,使用,docker,compose,创建,app,service,遇见,linux,version,is,too,long,it,cannot,be,more,than,characters,错误 · 浏览次数 : 33

小编点评

**问题原因:** App Service 将 Docker Compose 文件中的内容以 Base64 格式编码后,赋值给 Linux Version,而 Linux Version 的长度限制为 4000 个字符。 **解决方案:** 1. **精简 Docker Compose.yaml 文件:** - 移除任何与 App Service 不相关的指令或注释。 - 确保 `docker-compose.yaml` 文件的结构合理。 2. **使用 AKS (Azure Kubernetes Service) 服务:** - 创建一个 Kubernetes 集群并使用 `kubectl apply -f docker-compose.yaml` 命令创建容器。 - 使用 `kubectl get pods -n your-namespace` 命令查看容器状态。 3. **使用 ACI (Azure Container Instance) 服务:** - 创建一个容器实例,并使用 `docker-compose.yaml` 文件作为容器映像。 - 使用 `kubectl create -f docker-compose.yaml` 命令创建容器。 4. **使用 `docker-compose-builder` 工具:** - 使用 `docker-compose-builder` 工具可以将多个镜像合并到一个新的镜像中。 - 构建一个新的 Docker Compose 文件,并使用 `docker-compose build -t my-app .` 命令构建它。

正文

问题描述

使用Docker Compose方式合并多个镜像(Images)文件,然后部署到App Service中,结果失败。报错 Linux Version 太长,不能超过4000个字符。

错误消息:

{

"code":"DeploymentFailed",

"message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/arm-deployment-operations for usage details.",

"details":[

{"message":"Linux Version is too long. It cannot be more than 4000 characters."}

]

}

 

问题解答

这是因为App Service 会把 Docker compose.yml 文件中的内容以Base64格式编码后,赋值给Linux Version。而Linux Version的长度限制为4000个, 这是App Service For Linux平台限制,无法修改。

代替方案

可以使用方案有:

1)精简 Docker Compose.yaml 文件,把其中App Service不支持的指令或无关紧要的内容移除。App Service不支持的选项有:https://docs.azure.cn/zh-cn/app-service/configure-custom-container?pivots=container-linux&tabs=debian#docker-compose-options

2)使用 AKS(Azure Kubernetes Service) 服务 : https://docs.azure.cn/zh-cn/aks/tutorial-kubernetes-prepare-app

3)使用 ACI (Azure Container Instance) 服务 : https://learn.microsoft.com/en-us/azure/container-instances/tutorial-docker-compose

 

参考资料

Create Docker Comose App: https://learn.microsoft.com/en-us/azure/app-service/quickstart-multi-container#create-a-docker-compose-app

 

与 【Azure 应用服务】使用Docker Compose创建App Service遇见"Linux Version is too long. It cannot be more than 4000 characters"错误相似的内容: