add docker

This commit is contained in:
2026-01-06 12:19:04 +07:00
parent 9770baf8ea
commit 8da8702004
4 changed files with 78 additions and 0 deletions

17
.dockerignore Normal file
View File

@@ -0,0 +1,17 @@
__pycache__/
*.pyc
*.pyo
*.pyd
.Python
env/
venv/
.venv/
.env
*.sqlite3
*.log
.git/
.gitignore
README.md
Dockerfile
docker-compose.yml
data/

33
Dockerfile Normal file
View File

@@ -0,0 +1,33 @@
# Используем официальный Python образ
FROM python:3.11-slim
# Устанавливаем системные зависимости
RUN apt-get update && apt-get install -y \
tzdata \
&& rm -rf /var/lib/apt/lists/*
# Устанавливаем рабочую директорию
WORKDIR /app
# Копируем зависимости
COPY requirements.txt .
# Устанавливаем зависимости Python
RUN pip install --no-cache-dir -r requirements.txt
# Копируем исходный код
COPY . .
# Создаем директорию для данных
RUN mkdir -p /app/data
# Устанавливаем переменные окружения
ENV PYTHONUNBUFFERED=1
ENV TZ=UTC
# Создаем пользователя для безопасности (опционально)
RUN useradd -m -u 1000 botuser && chown -R botuser:botuser /app
USER botuser
# Запускаем бота
CMD ["python", "bot.py"]

26
docker-compose.yml Normal file
View File

@@ -0,0 +1,26 @@
version: '3.8'
services:
pill-bot:
build: .
container_name: pill-reminder-bot
restart: unless-stopped
environment:
- TZ=${TZ:-Europe/Moscow}
env_file:
- .env
volumes:
- ./data:/app/data
# Для разработки можно монтировать код:
# - ./bot.py:/app/bot.py:ro
healthcheck:
test: ["CMD-SHELL", "pgrep -f python || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"

2
requirements.txt Normal file
View File

@@ -0,0 +1,2 @@
python-telegram-bot==20.7
python-dotenv==1.0.0