Eu tenho um aplicativo Python Flask que é executado via Gunicorn a partir de um contêiner Docker Linux. A execução do contêiner Docker no Ubuntu funciona bem localmente, mas quando o contêiner é enviado para o registro do contêiner do Azure e implantado como um aplicativo do Azure, ele falha com as seguintes mensagens de erro:
- Container my-app_900f4c para o site my-app não foi iniciado dentro do limite de tempo esperado.
- Container my-app_900f4c não respondeu a pings HTTP na porta: 80, falhando no início do site.
Docker Log
2020-02-17 INFO - Pull Image successful, Time taken: 0 Minutes and 15 Seconds2020-02-17 INFO - Starting container for site2020-02-17 INFO - docker run -d -p 9031:80 --name my-app_900f4c -e PORT=80 -e WEBSITES_PORT=80 -e WEBSITE_SITE_NAME=my-app -e WEBSITE_AUTH_ENABLED=False -e WEBSITE_ROLE_INSTANCE_ID=0 -e WEBSITE_HOSTNAME=my-app.azurewebsites.net -e WEBSITE_INSTANCE_ID=eaaf...51e441df96704916ba7b506b6150b26cdc7 -e HTTP_LOGGING_ENABLED=1 myazureappregistry.azurecr.io/my_app:v1 2020-02-17 INFO - Initiating warmup request to container my-app_900f4c for site my-app2020-02-17 ERROR - Container my-app_900f4c for site my-app did not start within expected time limit. Elapsed time = 255.9515056 sec2020-02-17 ERROR - Container my-app_900f4c didn't respond to HTTP pings on port: 80, failing site start. See container logs for debugging.2020-02-17 INFO - Stopping site my-app because it failed during startup.
Log Do Docker Padrão
2020-02-17 [1] [INFO] Starting gunicorn 20.0.42020-02-17 [1] [INFO] Listening at: http://0.0.0.0:80 (1)2020-02-17 [1] [INFO] Using worker: gthread2020-02-17 [7] [INFO] Booting worker with pid: 72020-02-17 [8] [INFO] Booting worker with pid: 82020-02-17 [9] [INFO] Booting worker with pid: 92020-02-17 [10] [INFO] Booting worker with pid: 10
No portal do Azure em Configurações & gt; Configuração Eu tenho o seguinte Configuracao:
- Porto 80
- WEBSITES_PORT 80
Dockerfile
FROM python:3.8-slim-busterLABEL Name=my_app Version=0.0.1EXPOSE 80WORKDIR /appRUN python3 -m pip install --upgrade pipRUN python3 -m pip install -r requirements.txtADD . /appCMD ["gunicorn", "-c", "gunicorn.conf.py", "main:app"]
Não entendo o que está causando pings HTTP na porta 80
para falhar, quando os logs mostram que Gunicorn está ouvindo http://0.0.0.0:80
.
Perguntas semelhantes que têm nao resolvido o problema: