在 Azure Web 应用程序中运行 docker 容器:未响应端口上的 HTTP ping

问题描述 投票:0回答:4

我正在尝试在 Linux 操作系统中的 Azure Web 应用程序上运行 docker 容器。 Web 应用程序服务器成功拉取图像,但运行命令失败,并显示错误消息:未响应端口:9000 上的 HTTP ping

2019-10-22 00:15:12.671 INFO  - Pulling image: finalproductionimg.azurecr.io/finalproductionimg:latest
2019-10-22 00:15:12.877 INFO  - latest Pulling from finalproductionimg
2019-10-22 00:15:12.878 INFO  -  Digest: sha256:5681b69c53e29b42d9c05c8ccf2e849ae19732ee671c5aae388a906c7bb23208
2019-10-22 00:15:12.878 INFO  -  Status: Image is up to date for finalproductionimg.azurecr.io/finalproductionimg:latest
2019-10-22 00:15:12.883 INFO  - Pull Image successful, Time taken: 0 Minutes and 0 Seconds
2019-10-22 00:15:12.891 INFO  - Starting container for site
2019-10-22 00:15:12.891 INFO  - docker run -d -p 26730:9000 --name brisk-dokerprod_0_3f1f06b3 -e WEBSITES_ENABLE_APP_SERVICE_STORAGE=false -e WEBSITE_SITE_NAME=Brisk-dokerprod -e WEBSITE_AUTH_ENABLED=False -e PORT=9000 -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=brisk-dokerprod.azurewebsites.net -e WEBSITE_INSTANCE_ID=af378d6c8fb1477b346afda52f53f46802b9685f672a1a6b1e1dfb51b076f0a4 -e HTTP_LOGGING_ENABLED=1 finalproductionimg.azurecr.io/finalproductionimg:latest version: '3' services: web-prod: build: context: . dockerfile: Dockerfile-prod ports: - "80" - "9000" - "8080:9000" 

2019-10-22 00:15:13.492 INFO  - Initiating warmup request to container brisk-dokerprod_0_3f1f06b3 for site brisk-dokerprod
2019-10-22 00:15:13.640 ERROR - Container brisk-dokerprod_0_3f1f06b3 for site brisk-dokerprod has exited, failing site start
2019-10-22 00:15:13.642 ERROR - Container brisk-dokerprod_0_3f1f06b3 didn't respond to HTTP pings on port: 9000, failing site start. See container logs for debugging.

在我的 yml 文件中,我有

ports:
      - "80"
      - "9000"
      - "8080:9000"

我错过了什么?

azure docker web-applications
4个回答
13
投票

这是Azure Web App的限制,它仅支持公开端口80和443。因此,当您想公开其他端口(例如9000和8080)时,您会得到它没有响应HTTP ping的错误在那个端口上。


2
投票

感谢您的回答,基本上就是 Charles Xu 所说的。 为了解决这个问题,我只是在 Dockerfile 中暴露了端口 80 和 9000,最后在 Azure 应用程序应用程序设置中添加两个新变量:PORT=9000 和 WEBSITES_PORT=80。


0
投票

Azure Web Apps 对端口 80 和 443 的限制已取消:

https://learn.microsoft.com/en-us/azure/app-service/configure-custom-container?pivots=container-linux&tabs=debian#configure-port-number

Azure CLI:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings WEBSITES_PORT=8000

Azure Powershell:

Set-AzWebApp -ResourceGroupName <group-name> -Name <app-name> -AppSettings @{"WEBSITES_PORT"="8000"}

0
投票

我也遇到了同样的问题,但终于找到了答案。我这边的问题是我正在使用在不同架构上运行的 MacBook M2 Max 构建图像。尝试将架构指定为以下命令。将构建命令更改为类似这样的

docker build --platform=linux/amd64 -t next-portfolio:latest .

已经解决了问题。我尝试使用 AppService 和 Docker hub 来部署到 Azure。此后所有端口问题都消失了。

© www.soinside.com 2019 - 2024. All rights reserved.