我正在尝试使用 docker-compose 在 azure 应用程序服务上部署 Django 应用程序,我已经将两个映像推送到 ACR,当我在计算机上执行 docker-compose.yml 时,一切正常,但是当我部署应用程序时,访问 URL 它只显示下一条消息:
":( 应用程序错误 如果您是应用程序管理员,则可以访问诊断资源。”
我还在部署中心日志中搜索了任何类型的信息,但只有这条消息
“无法加载容器日志:未找到文本类型的资源容器日志”
知道如何修复它吗?
这是我的 docker-compose.yml
services:
web:
image: zaito.azurecr.io/backgroundtasks:latest
command: uwsgi --http "0.0.0.0:8000" --protocol uwsgi --module zaitoTasksApi.wsgi --master --processes 4 --threads 2
volumes:
- static_volume:/usr/src/app/static
- media_volume:/usr/src/app/media
expose:
- "8000"
nginx:
image: zaito.azurecr.io/nginx:django
restart: always
volumes:
- static_volume:/usr/src/app/static
- media_volume:/usr/src/app/media
ports:
- "80:80"
depends_on:
- web
volumes:
media_volume:
static_volume:
此错误的原因之一可能是 Azure 在特定时间限制后未执行应用程序。
我解决这个问题的方法是在配置选项中添加命令
python app.py
。有可选的启动命令,以防应用程序命令未正确执行。
您可以输入自己的应用程序启动命令。
我的回答可能与最初的问题没有直接关系,但我希望我描述的信息也能帮助其他人。
Container Issues
部分中的Diagnose and solve problems
工具可能会显示错误消息,否则无法直接看到。
最近,即使使用单个容器,我们的应用程序服务之一也会出现相同的错误消息。
奇怪的是,它完美运行了两年,我们没有刻意改变任何东西。
初始症状: 应用程序返回 5xx http 错误代码 在部署中心/日志页面上,我们仅收到以下消息:“无法加载容器日志:未找到文本类型的资源容器日志”
恢复尝试: 我尝试启动/停止应用程序、扩大/缩小服务计划、选择基本/高级 sku。即使使用库存 nginx 容器映像,应用程序服务也不提供日志。
我们观察到的情况: 应用程序返回 5xx http 错误代码 开发工具/高级工具返回错误页面:”:( 应用程序错误 如果您是应用程序管理员,您可以访问“ 开发工具/SSH 返回错误页面:“:( 应用程序错误 如果您是应用程序管理员,您可以访问“
分辨率: 后来,使用
Container Issues
部分中的 Diagnose and solve problems
工具显示以下错误:
[BYOS] 自定义存储卷无法初始化:[/var/LWASFiles/Sites/xxxx-d-we-001/f60654]
事实证明,相关的存储帐户是在部署期间由 terraform 重新创建的。
在这里找到了这个答案
https://learn.microsoft.com/en-us/answers/questions/955528/(-application-error-when-using-docker-compose
看起来这个问题可能与虚拟网络集成有关
“应用服务中的 Docker Compose 场景不支持虚拟网络集成。”