beerzy
beerzy

Reputation: 127

Running a docker container in Azure web app: didn't respond to HTTP pings on port

I'm trying to run a docker container on Azure web app in linux os. The web app server is sucessfuly pulling the image but fails on the run command with the error message: didn't respond to HTTP pings on port: 9000

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.

In my yml file I have

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

What am I missing?

Upvotes: 5

Views: 12435

Answers (3)

StarSweeper
StarSweeper

Reputation: 417

The limitation to ports 80 and 443 for Azure Web Apps has been lifted:

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"}

Upvotes: 1

beerzy
beerzy

Reputation: 127

Thanks for the answers, basically it's what Charles Xu said. To solve it I just exposed port 80 and 9000 in the Dockerfile and finally in Azure App Application Settings add two new variables, PORT=9000 and WEBSITES_PORT=80.

Upvotes: 3

Charles Xu
Charles Xu

Reputation: 31452

This is a limitation of the Azure Web App, it only supports to expose the port 80 and 443. So when you want to expose other ports such as 9000 and 8080, then you got the error that it didn't respond to HTTP pings on that port.

Upvotes: 14

Related Questions