From d93964b793f656cf61003505b3ef79f91c3fb591 Mon Sep 17 00:00:00 2001 From: zosimovaa Date: Wed, 29 Oct 2025 23:01:26 +0300 Subject: [PATCH] Docker configs was added --- docker-compose.yml | 66 ++++++++++++++++++++++++++++++++++++++++++++++ dockerfile | 30 +++++++++++++++++++++ 2 files changed, 96 insertions(+) create mode 100644 docker-compose.yml create mode 100644 dockerfile diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..615cc88 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,66 @@ +version: '3.8' + +services: + mail_order_bot: + build: + context: . + dockerfile: Dockerfile + args: + GIT_REPO_URL: https://git.lesha.spb.ru/alex/mail_order_bot + GIT_BRANCH: master + container_name: mail_order_bot + restart: unless-stopped + + # Монтирование .env файла для секретов + env_file: + - .env + + # Дополнительные переменные окружения + environment: + - PYTHONUNBUFFERED=1 + + # Монтирование volumes (если нужно) + volumes: + - .//app/data # для хранения данных + - ./logs:/app/logs # для логов + + # Если приложение использует сеть + # ports: + # - "8000:8000" + + # Если нужны другие сервисы (БД, Redis и т.д.) + # depends_on: + # - postgres + # - redis + + # Настройки логирования + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + +# Раскомментируйте, если нужны дополнительные сервисы +# +# postgres: +# image: postgres:15-alpine +# container_name: mail_order_bot_db +# restart: unless-stopped +# environment: +# POSTGRES_DB: mail_order_bot +# POSTGRES_USER: ${POSTGRES_USER} +# POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} +# volumes: +# - postgres_/var/lib/postgresql/data +# ports: +# - "5432:5432" +# +# redis: +# image: redis:7-alpine +# container_name: mail_order_bot_redis +# restart: unless-stopped +# ports: +# - "6379:6379" + +# volumes: +# postgres_ diff --git a/dockerfile b/dockerfile new file mode 100644 index 0000000..42d5891 --- /dev/null +++ b/dockerfile @@ -0,0 +1,30 @@ +# Используем официальный образ Python +FROM python:3.11-slim + +# Устанавливаем git для клонирования репозитория +RUN apt-get update && apt-get install -y git && rm -rf /var/lib/apt/lists/* + +# Создаем рабочую директорию +WORKDIR /app + +# Клонируем репозиторий +ARG GIT_REPO_URL=https://git.lesha.spb.ru/alex/mail_order_bot +ARG GIT_BRANCH=master +RUN git clone --branch ${GIT_BRANCH} ${GIT_REPO_URL} . + +# Устанавливаем зависимости из requirements.txt (если есть) +RUN if [ -f requirements.txt ]; then pip install --no-cache-dir -r requirements.txt; fi + +# Устанавливаем пакет и его зависимости из pyproject.toml +RUN pip install --no-cache-dir -e . + +# Альтернативный вариант для production (без editable mode): +# RUN pip install --no-cache-dir . + +# Устанавливаем переменные окружения для Python +ENV PYTHONUNBUFFERED=1 +ENV PYTHONDONTWRITEBYTECODE=1 + +# Команда запуска приложения (замените на вашу) +# CMD ["python", "-m", "mail_order_bot"] +CMD ["python", "src/mail_order_bot/main.py"]