Files
dependabot[bot] 50600a0269 Bump python from 3.12-slim to 3.14-slim in /docker
Bumps python from 3.12-slim to 3.14-slim.

---
updated-dependencies:
- dependency-name: python
  dependency-version: 3.14-slim
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
2026-07-13 08:53:48 +00:00

43 lines
1.2 KiB
Docker

FROM python:3.14-slim
# Set working directory
WORKDIR /app
# Install system dependencies
RUN apt-get update && apt-get install -y \
gcc \
libpq-dev \
&& rm -rf /var/lib/apt/lists/*
# Copy requirements first for better caching
COPY requirements.txt .
# Install Python dependencies
RUN pip install --no-cache-dir -r requirements.txt
# Copy application code
COPY . .
# Create instance directory for SQLite if needed
RUN mkdir -p instance
# Run as a non-root user for defence in depth
RUN useradd --create-home --uid 1000 app && chown -R app:app /app
USER app
# Expose the port the app runs on
EXPOSE 6217
# Set environment variables
ENV FLASK_CONFIG=production
ENV PYTHONPATH=/app
# Serve via gunicorn with the gthread worker class. See wsgi.py for why
# we're not using eventlet (short version: eventlet + Flask async routes
# + standard decorators don't compose). A single worker keeps SocketIO
# clients stuck to one process; scale horizontally by running multiple
# containers behind a load balancer with sticky sessions + a shared
# message queue.
CMD ["gunicorn", "--worker-class", "gthread", "--workers", "1", \
"--threads", "50", "--bind", "0.0.0.0:6217", "--timeout", "120", \
"--access-logfile", "-", "wsgi:app"]