DAS_2024_1/lazarev_andrey_lab_3/README.md

4.5 KiB
Raw Permalink Blame History

Лабораторная работа №2

Описание проекта

Проект разворачивает 3 программы в отдельных контейнерах с использованием Docker Compose:

  1. author_service - сервис, с CRUD операциями для авторов;
  2. publication_service - сервис, с CRUD операциями для публикаций;
  3. nginx - веб-сервер и прокси-сервер, является маршрутизатором.

Между первыми двумя сервисами имеется связь один(Автор) ко многим(Публикация).

Струкутура проекта

Проект состоит из:

  • 2 папки(author_service, publication_service)

    • Каждая папка содержит в себе файл с расширением .py с кодом программы;
    • Кадлая папка сожержит в себе файл Dockerfile с инструкцией по созданию Docker образа.
  • Файл .gitignore для исключения временных файлов директории venv/;

  • Файл docker-compose.yml с конфигурацией Docker Compose;

  • Файл nginx.conf конфигурации для веб-сервера NGINX с параметрами работы сервера;

  • Файл requirements.txt с перечислением всех необходимых библиотек для запуска.

Комментарии в файлах.

Запуск

  1. Скачать и установить Docker и Docker Compose;
  2. Перейти в директорию с файлом docker-compose.yml;
  3. Открыть консоль и запустить сервисы командой
docker-compose up --build -d
  1. Дождаться запуска всех сервисов
    [+] Running 3/3
 ✔ Container lazarev_andrey_lab_2-generate-files-1  Started                            0.5s 
 ✔ Container lazarev_andrey_lab_2-first-1           Started                            1.3s 
 ✔ Container lazarev_andrey_lab_2-second-1          Started                            2.0s 
  1. Остановка всех сервисов Для завершения работы с сервисами необходимо выполнить команду:
    docker-compose down
    

Дождаться завершения работы:

[+] Running 4/4
 ✔ Container lazarev_andrey_lab_2-second-1          Removed                            0.0s 
 ✔ Container lazarev_andrey_lab_2-first-1           Removed                            0.0s 
 ✔ Container lazarev_andrey_lab_2-generate-files-1  Removed                            0.0s 
 ✔ Network lazarev_andrey_lab_2_default             Removed                               0.4s

Cписок команд

  • Author_service

    • http://localhost:8000/author_service/author - список авторов
    • http://localhost:8000/author_service/author/{id автора} - конкретный автор
    • http://localhost:8000/author_service/author/full/{id автора} - автор и полный список его публикаций
    • http://localhost:8000/author_service/author?name={имя}&second_name={фамилия}&age={возраст} - добавление нового автора
    • http://localhost:8000/author_service/author/{id автора}?name={новое имя} - изменение имени автора
  • Publication_service

    • http://localhost:8000/publication_service/publication - список публикаций
    • http://localhost:8000/publication_service/publication/{id публикации} - конкретная публикация
    • http://localhost:8000/publication_service/publication/full/{id публикации} - публикация и полная информация об авторе
    • http://localhost:8000/publication_service/publication?name={название}&public_year={год выпуска}&author_id={id автора} - добавление новой публикации
    • http://localhost:8000/publication_service/publication/{id публикации}?name={новое название} - изменение названия публикации

Видеодемонстрация работоспособности

Демонстрация работы сервисов