Цей проєкт являє собою вебсервіс, що використовує HTTP-сервер для взаємодії з користувачами та сокет-сервер для передачі повідомлень. Повідомлення зберігаються у базі даних MongoDB.
- Python (HTTPServer, сокети)
- MongoDB
- Docker + Docker Compose
main.py: Основний файл вебсервера, який обробляє GET і POST запити.socket_server.py: Файл, що містить код сокет-сервера для отримання та обробки повідомлень.Dockerfile: Файл для збірки Docker-образу вебсервера.Dockerfile.socket: Файл для збірки Docker-образу сокет-сервера.docker-compose.yaml: Файл конфігурації Docker Compose для запуску всіх сервісів.static/: Каталог для статичних файлів (CSS, зображення тощо).
Перед початком роботи переконайтеся, що у вас встановлено:
- Docker
- Docker Compose
-
Клонувати репозиторій:
git clone https://github.com/yourusername/yourproject.git
-
Перейти в директорію проєкту:
cd yourproject -
Запустити Docker Compose:
docker-compose up --build
-
Відкрити браузер і перейти за адресою http://localhost:3000, щоб побачити вебсервіс.
- web_server: Вебсервер, що обробляє HTTP-запити і підключається до сокет-сервера.
- socket_server: Сокет-сервер, який приймає дані через сокети і зберігає їх у MongoDB.
- mongo_db: База даних MongoDB для збереження повідомлень.
Щоб переглянути логи роботи контейнерів, використовуйте команду:
docker-compose logsДані MongoDB зберігаються у volume, тому після перезапуску контейнерів дані зберігаються:
- Volume для MongoDB: mongo_data
- Переконайтеся, що всі сервіси в docker-compose.yaml використовують одну мережу (app-network).
- Залежність вебсервера від MongoDB і сокет-сервера налаштована за допомогою опції depends_on.