Развернуть на героку с Makefile и Docker и Python - PullRequest
1 голос
/ 10 февраля 2020

Для школьного проекта я бы хотел развернуть наше приложение на Heroku. Приложение состоит из внешнего интерфейса, выполненного в reactjs и скомпилированного в stati c html, затем обслуживаемого бэкэндом, который также обрабатывает API и все остальное.

Dockerfile работает правильно, когда в репо, запустите make docker и образ будет построен и запущен. Go на localhost:8080, и вы должны увидеть приглашение для входа в систему. Если вы получаете сообщение об ошибке, вам нужен файл .env, содержащий следующие данные:

FLASK_DEBUG=True
FLASK_SECRET_KEY=ThisIsADevelopmentKey

FRONT_STATIC_FOLDER=../../frontend/build

DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=

. Затем снова запустите образ, используя docker run --env-file .env --name pymatcha --restart=always -p 8080:5000 -d pymatcha

. Проблема заключается в том, что когда я пу sh Мой PR, Heroku создает приложение для предварительного просмотра, но я получаю ошибку с Python. Либо не хватает python3 .7 полностью, либо отсутствует venv, или обеспечить пипп. Чтобы противостоять этому, я попытался добавить Aptfile с пакетом сборки Aptfile, но это не сработало. Перемещение Python buildpack также.

Кто-нибудь знает лучшее решение, чтобы легко развернуть на heroku мой проект? или используя наш make-файл в процессе сборки heroku, или отправив изображение docker heroku в travis?

Полезные ссылки на мой вопрос: Репозиторий

Текущая версия Heroku PR

Папка интерфейса

Внутренняя папка

Dockerfile в приложении Heroku PR

app. json для Heroku в Heroku PR

Makefile в Heroku PR

1 Ответ

1 голос
/ 10 февраля 2020

Вероятная проблема заключается в том, что вы используете сборочный пакет в стеке heroku вместо docker «стека». Это означает, что heroku будет пытаться обнаружить и собрать ваше приложение в соответствии с его правилами, игнорируя ваш файл Docker.

Сначала обновите стек:

heroku stack set docker -a <your app>

Затем вы сможете локально соберите свой docker контейнер (ы) и отправьте sh их в heroku реестр .

С помощью Heroku, как и многих целей развертывания, вам нужно создать образ локально или более предпочтительно - в CI и pu sh в реестр для развертывания / выпуска.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...