Docker: Dockerfile + docker-compose.yml для запуска бота в контейнере
- Dockerfile (python:3.11-slim): установка зависимостей, запуск bot.py. - docker-compose.yml: авто-перезапуск (restart: unless-stopped), настройки из .env (env_file), база в именованном volume (данные не теряются при пересборке). - .dockerignore: в образ не тащим .git/тесты/докумен/базу/.env. - bot.py: путь к БД через DB_PATH (для volume в Docker), по умолчанию — как раньше. - requirements.txt: убраны неиспользуемые Pillow и openpyxl (образ легче). pytest passed. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+22
@@ -0,0 +1,22 @@
|
||||
# Образ бота «Кибершкола БАЗА» (VK). Python 3.11.
|
||||
FROM python:3.11-slim
|
||||
|
||||
# Не писать .pyc, логи — сразу в вывод (docker logs)
|
||||
ENV PYTHONDONTWRITEBYTECODE=1 \
|
||||
PYTHONUNBUFFERED=1
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
# Сначала зависимости — так слой кэшируется и пересборка быстрее
|
||||
COPY requirements.txt .
|
||||
RUN pip install --no-cache-dir -r requirements.txt
|
||||
|
||||
# Код бота
|
||||
COPY . .
|
||||
|
||||
# Каталог для базы (монтируется как volume, чтобы данные не терялись)
|
||||
RUN mkdir -p /app/data
|
||||
ENV DB_PATH=/app/data/bot_database.db
|
||||
|
||||
# Запуск бота (long poll, слушает VK)
|
||||
CMD ["python", "-u", "bot.py"]
|
||||
Reference in New Issue
Block a user