Skip to content

Учебный проект, позволяющий автоматизировать процесс деплоя на удаленный сервер.

License

Notifications You must be signed in to change notification settings

sanfootball/taski-docker

 
 

Repository files navigation

taski-docker

Оглавление:

Стек технологий

  • 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 осуществляет деплой на сервер
  • направлят в Телеграме сообщение о совершенном деплое, уточняя:
    • кто сделал коммит
    • какое сообщение было у коммита
    • ссылку на коммит

Как запустить проект:

  1. Скачать docker на сервер, если его нет. Инструкции: https://docs.docker.com/get-docker/

  2. Клонировать репозиторий с проектом на свой компьютер: git clone git@github.com:sanfootball/taski.git

  3. Установить и активировать виртуальное окружение:

python -m venv venv
. venv/Scripts/activate

В виртуальном окружении установить зависимости:

pip install -r requirements.txt
  1. Создать .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

About

Учебный проект, позволяющий автоматизировать процесс деплоя на удаленный сервер.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 43.2%
  • JavaScript 40.8%
  • HTML 9.9%
  • Dockerfile 4.0%
  • CSS 2.1%