30 lines
792 B
Docker
30 lines
792 B
Docker
# Dockerfile for Excommunicado Discord Bot
|
|
FROM python:3.12-slim
|
|
|
|
# Unbuffered stdout/stderr so logs appear immediately in `docker logs`
|
|
ENV PYTHONUNBUFFERED=1 \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
LOG_LEVEL=INFO
|
|
|
|
# Set working directory
|
|
WORKDIR /app
|
|
|
|
# Copy requirements first (better layer caching)
|
|
COPY requirements.txt .
|
|
|
|
# Install Python dependencies
|
|
RUN pip install --no-cache-dir -r requirements.txt
|
|
|
|
# Copy the rest of the application
|
|
COPY . .
|
|
|
|
# Create non-root user and give it ownership of the app + data directory.
|
|
# UID/GID 1000 is referenced by the named-volume / chown instructions in the README.
|
|
RUN useradd -m -u 1000 botuser \
|
|
&& mkdir -p /app/data \
|
|
&& chown -R botuser:botuser /app
|
|
USER botuser
|
|
|
|
# Run the bot
|
|
CMD ["python", "bot.py"]
|