1 Commits
Author SHA1 Message Date
prog1764 6785918bdc docker: подготовка к запуску в контейнере (Telegram-бот)
- Dockerfile: python:3.12-slim, зависимости отдельным слоем
- docker-compose.yml: env из .env, volume для /app/data, LOG_DIR=/dev/null
- .dockerignore: .env, data, logs, кэш
- fix: loguru не было в requirements.txt (бот не стартовал бы) — добавлен
- logger.py: LOG_DIR переопределяется через env (в контейнере в /dev/null)
2026-08-04 20:21:31 +04:00
5 changed files with 51 additions and 1 deletions
+12
View File
@@ -0,0 +1,12 @@
.git
.gitignore
.idea
__pycache__
*.pyc
*.pyo
.env
.venv
venv
data
logs
*.log
+19
View File
@@ -0,0 +1,19 @@
# Python 3.12 slim
FROM python:3.12-slim
ENV PYTHONDONTWRITEBYTECODE=1 \
PYTHONUNBUFFERED=1
WORKDIR /app
# Сначала зависимости — чтобы кэшировать слой
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
# Код приложения
COPY . .
# Логи пишем в stdout/stderr, а не в файл внутри контейнера
ENV LOG_DIR=/dev/null
CMD ["python", "-m", "app.main"]
+4
View File
@@ -6,6 +6,10 @@ from loguru import logger
LOG_DIR = Path(__file__).resolve().parent.parent / "logs"
LOG_DIR.mkdir(exist_ok=True)
# В контейнере можно переопределить через env (например LOG_DIR=/dev/null)
LOG_DIR = Path(__import__("os").environ.get("LOG_DIR", str(LOG_DIR)))
LOG_DIR.mkdir(exist_ok=True)
# Remove default handler
logger.remove()
+14
View File
@@ -0,0 +1,14 @@
# Telegram-бот: секреты из .env (см. .env.example)
services:
bot:
build: .
env_file:
- .env
environment:
- LOG_DIR=/dev/null
volumes:
- bot_data:/app/data
restart: unless-stopped
volumes:
bot_data:
+1
View File
@@ -1,2 +1,3 @@
aiogram
python-dotenv
loguru