Ошибка R10 при развертывании образа Docker в Heroku - PullRequest
0 голосов
/ 29 мая 2020

У меня возникла некоторая проблема, когда я пытался развернуть мой образ Docker, содержащий простое оптимизированное приложение, на Heroku. Моя проблема в том, что я не могу получить доступ к своему Docker после развертывания. При ближайшем рассмотрении я обнаружил следующую ошибку:

Ошибка R10 (Тайм-аут загрузки) -> Веб-процессу не удалось привязать к $ PORT в течение 60 секунд после запуска

I исследовал и понял, что это связано с тем, что порт недоступен, поскольку Heroku динамически назначает номер порта.

Я убедился, что этого не произойдет, разместив следующий мой Dockerfile.

Dockerfile:

FROM python:3.7
COPY . /app
WORKDIR /app
RUN pip install streamlit
ENTRYPOINT ["streamlit","run", "--server.enableCORS", "false" ,"--server.port", "$PORT"]
CMD ["app.py"]

Теперь я могу видеть, что сетевой URL и Номер порта внешнего URL-адреса назначается Heroku, поскольку это не типичный номер 5901.

Но что меня озадачило, так это то, почему контейнер не может привязаться к заданному номеру порта Dynami c? Я думал, что приложение будет использовать указанный номер Dynami c?

1 Ответ

2 голосов
/ 29 мая 2020

Проблема в том, что $PORT не заменяется соответствующей переменной среды, когда запуск Docker выполняется в реестре Heroku Docker.

Альтернативой является создание Docker файл, который вызывает. sh скрипт

FROM python:3.7 
COPY . /app 
WORKDIR /app 
RUN pip install streamlit


ENTRYPOINT "/startup.sh"

и запускает. sh

echo PORT $PORT
streamlit run --server.enableCORS false --server.port $PORT app.py
...