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 = Path(__file__).resolve().parent.parent / "logs"
|
||||||
LOG_DIR.mkdir(exist_ok=True)
|
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
|
# Remove default handler
|
||||||
logger.remove()
|
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
|
aiogram
|
||||||
python-dotenv
|
python-dotenv
|
||||||
|
loguru
|
||||||
|
|||||||
Reference in New Issue
Block a user