mirror of
https://github.com/olegvodyanov/docbot.git
synced 2025-12-19 23:57:05 +03:00
46 lines
1.0 KiB
Docker
46 lines
1.0 KiB
Docker
FROM python:3.13-slim
|
|
|
|
# Set environment variables
|
|
ENV PYTHONUNBUFFERED=1
|
|
ENV PYTHONDONTWRITEBYTECODE=1
|
|
|
|
ENV PYTHONPATH="${PYTHONPATH}:/app/src"
|
|
|
|
# Install system dependencies
|
|
RUN apt-get update && apt-get install -y \
|
|
build-essential
|
|
|
|
# Install Poetry
|
|
RUN pip install poetry==2.1.4
|
|
|
|
# Set work directory
|
|
WORKDIR /app
|
|
|
|
# Copy Poetry configuration files
|
|
COPY pyproject.toml poetry.lock* ./
|
|
|
|
# Configure Poetry and install dependencies
|
|
RUN poetry config virtualenvs.create false \
|
|
&& poetry install --only=main --no-root \
|
|
&& rm -rf $POETRY_CACHE_DIR
|
|
|
|
# Copy application code
|
|
COPY src/ ./src/
|
|
|
|
# Create directories for bot persistence
|
|
RUN mkdir -p /app/data
|
|
|
|
# Create non-root user
|
|
RUN groupadd -r botuser && useradd -r -g botuser botuser
|
|
RUN chown -R botuser:botuser /app
|
|
USER botuser
|
|
|
|
# Health check - check if the bot process is running
|
|
HEALTHCHECK --interval=60s --timeout=30s --start-period=10s --retries=3 \
|
|
CMD pgrep -f "docbot.main" || exit 1
|
|
|
|
RUN ls -la
|
|
|
|
# Run the chatbot
|
|
CMD ["python", "-m", "docbot.main"]
|