Azure应用服务环境(ASEv3)中Docker组合失败



在应用服务环境下的Azure应用服务中,我使用公共Docker Hub作为注册表源配置了一个Docker Compose设置。

version: '3.7'
services:
web:
image: nginx:stable
restart: always
ports:
- '80:80'

不幸的是,这未能部署,检查日志,我看到很少输出:

2021-10-21T19:14:55.647Z INFO - Stopping site XXXX-as__6e65 because it failed during startup. 
2021-10-21T19:15:02.054Z INFO - Stopping site XXXX-as__6e65 because it failed during startup. 
2021-10-21T19:15:11.990Z INFO - Stopping site XXXX-as__6e65 because it failed during startup. 
2021-10-21T19:15:28.110Z INFO - Stopping site XXXX-as__6e65 because it failed during startup. 
2021-10-21T19:17:39.825Z INFO - Stopping site XXXX-as__6e65 because it failed during startup.

我将注意到,移动到单个容器设置(而不是Docker组合设置)工作得很好。

下面是几个需要设置的组合文件:

services:
web:
image: nginx
deploy:
restart_policy:
condition: on-failure
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:80"]
interval: 10s

您还可以使用docker compose命令部署和管理在Compose files to ACI中定义的多容器应用程序。同一个Compose应用程序中的所有容器都在同一个容器组中启动。容器之间的服务发现使用Compose文件中指定的服务名称进行。容器之间的名称解析是通过在/etc/hosts文件中写入服务名称来实现的,该文件由容器组中的所有容器自动共享。

我们有一个很好的博客与此相关,请参考它,感谢docs.dockers。

我也遇到过类似的问题,但是错误提示:"无法加载容器日志:未找到text类型的Containerlog资源"。

奇怪的是,将它部署为单个容器类型(而不是Docker组合类型),它工作得很好。同样,如果你使用普通的应用程序服务(没有环境),完全相同的docker-compose也可以完美地工作。

所以我怀疑这是Azure的bug。

注。https://learn.microsoft.com/en-us/answers/questions/955528/-application-error-when-using-docker-compose.html

最新更新