Я развернул приложение Django на сервере Heroku.Heroku CLI перенес мой проект без миграций и базы данных вручную.Затем нажатие Gitlab ci (которое выполняет миграцию перед push) дает мне ошибку сбоя приложения на стороне Heroku.Я уже сталкивался со многими ошибками приложения и раньше мог их исправить, просматривая журналы.Но на этот раз я не могу понять, в чем проблема.Я уверен, что файлы полностью выдвинуты и приложение выпущено.
Вот мой Procfile:
web: gunicorn --pythonpath Code Code.wsgi --log-file -
Мой проект находится в папке «Код» иМой Django-проект называется Code.
Ошибка в части логов heroku :
2019-06-08T08:02:50.549319+00:00 app[api]: Deployed web (c1f5c903bedb) by user arminbehnamnia@gmail.com
2019-06-08T08:02:50.549319+00:00 app[api]: Release v6 created by user arminbehnamnia@gmail.com
2019-06-08T08:02:51.268875+00:00 heroku[web.1]: Restarting
2019-06-08T08:02:51.277247+00:00 heroku[web.1]: State changed from up to starting
2019-06-08T08:02:52.494158+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2019-06-08T08:02:52.517991+00:00 app[web.1]: [2019-06-08 08:02:52 +0000] [4] [INFO] Handling signal: term
2019-06-08T08:02:52.519983+00:00 app[web.1]: [2019-06-08 08:02:52 +0000] [11] [INFO] Worker exiting (pid: 11)
2019-06-08T08:02:52.529529+00:00 app[web.1]: [2019-06-08 08:02:52 +0000] [10] [INFO] Worker exiting (pid: 10)
2019-06-08T08:02:52.823141+00:00 app[web.1]: [2019-06-08 08:02:52 +0000] [4] [INFO] Shutting down: Master
2019-06-08T08:02:52.958760+00:00 heroku[web.1]: Process exited with status 0
2019-06-08T08:03:09.777009+00:00 heroku[web.1]: Starting process with command `python3`
2019-06-08T08:03:11.647048+00:00 heroku[web.1]: State changed from starting to crashed
2019-06-08T08:03:11.654524+00:00 heroku[web.1]: State changed from crashed to starting
2019-06-08T08:03:11.625687+00:00 heroku[web.1]: Process exited with status 0
.
.
.
2019-06-08T08:17:16.898569+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=makan-system.herokuapp.com request_id=de4fbb8e-cd14-4263-bb6f-a8d0f956a519 fwd="69.55.54.121" dyno= connect= service= status=503 bytes= protocol=https
Мой файл .gitlab-ci.yml :
stages:
- test
- build
- push
tests:
image: docker:latest
services:
- docker:dind
stage: test
before_script:
- docker login -u armin_gm -p $PASSWORD registry.gitlab.com
script:
- docker build . -t test_django
- docker ps
- docker run --name=testDjango test_django python /makanapp/Code/manage.py test registration
when: on_success
build:
image: docker:latest
services:
- docker:dind
stage: build
before_script:
- docker login -u armin_gm -p $PASSWORD registry.gitlab.com
script:
- docker build -t registry.gitlab.com/armin_gm/asd_project_98_6 .
- docker push registry.gitlab.com/armin_gm/asd_project_98_6
push_to_heroku:
image: docker:latest
stage: push
services:
- docker:dind
script:
# This is for gitlab
- docker login -u armin_gm -p $PASSWORD registry.gitlab.com
#- docker pull registry.gitlab.com/armin_gm/asd_project_98_6:latest
- docker build . -t push_to_django
- docker ps
# This is for heroku
- docker login --username=arminbehnamnia@gmail.com --password=$AUTH_TOKEN registry.heroku.com
- docker tag push_to_django:latest registry.heroku.com/makan-system/web:latest
- docker push registry.heroku.com/makan-system/web:latest
- docker run --rm -e HEROKU_API_KEY=$AUTH_TOKEN wingrunr21/alpine-heroku-cli container:release web --app makan-system
Мой Dockerfile:
# Official Python image
FROM python:latest
ENV PYTHONUNBUFFERED 1
# create root directory for project, set the working directory and move all files
RUN mkdir /makanapp
WORKDIR /makanapp
ADD . /makanapp/
# Web server will listen to this port
EXPOSE 8000
# Install all libraries we saved to requirements.txt file
#RUN apt-get -y update
#RUN apt-get -y install python3-dev python3-setuptools
RUN pip install -r requirements.txt
RUN python ./Code/manage.py makemigrations
RUN python ./Code/manage.py migrate --run-syncdb