- Python
- Django
- DRF
- Docker
- Nginx
- Gunicorn
- GitHub Actions
- Linux
Проект был размещен на сервере Ubuntu в контейнерах при помощи Docker, есть 3 контейнера:
- nginx
- backend
- frontend
В файле docker-compose описывается система из контейнеров. Docker-compose-production описывает уже непосредственно вариант с работой через GitHub Actions и деплоем на сервере.
Реализован деплой на сервере после загрузки на GitHub при помощи GitHub Actions. Перед деплоем GitHub Actions делает следующее:
- тестирует backend код на соответствие PEP8
- тестирует frontend код
- загружает на DockerHub все контейнеры (c nginx, backend и frontend)
- с DockerHub осуществляет деплой на сервер
- направлят в Телеграме сообщение о совершенном деплое, уточняя:
- кто сделал коммит
- какое сообщение было у коммита
- ссылку на коммит
-
Скачать docker на сервер, если его нет. Инструкции: https://docs.docker.com/get-docker/
-
Клонировать репозиторий с проектом на свой компьютер:
git clone git@github.com:sanfootball/taski.git
-
Установить и активировать виртуальное окружение:
python -m venv venv
. venv/Scripts/activate
В виртуальном окружении установить зависимости:
pip install -r requirements.txt
- Создать .env файл со сделующей информацией:
POSTGRES_USER= логин
POSTGRES_PASSWORD= пароль
POSTGRES_DB= имя БД
DB_HOST= название хоста
DB_PORT=5432
5 . Выполнить сборку контейнеров:
docker-compose up -d --build
6 . Выполнить перенос:
docker-compose exec backend python manage.py migrate
7 . Создай суперпользователя:
docker-compose exec backend python manage.py createsuperuser
8 . Собрать файлы статики:
docker-compose exec backend python manage.py Collectstatic
9 . Скопируйте статические файлы в /backend_static/static/backend-контейнера:
docker compose exec backend cp -r /app/collected_static/. /backend_static/static/
- 127.0.0.1:8000 Главная страница
Трубников Александр
E-mail: petrovskii1980@mail.ru
Telegram: https://t.me/sanfootball