Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6785918bdc |
@@ -0,0 +1,12 @@
|
||||
.git
|
||||
.gitignore
|
||||
.idea
|
||||
__pycache__
|
||||
*.pyc
|
||||
*.pyo
|
||||
.env
|
||||
.venv
|
||||
venv
|
||||
data
|
||||
logs
|
||||
*.log
|
||||
+19
@@ -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"]
|
||||
@@ -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()
|
||||
|
||||
|
||||
@@ -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,2 +1,3 @@
|
||||
aiogram
|
||||
python-dotenv
|
||||
loguru
|
||||
|
||||
Reference in New Issue
Block a user