28 lines
652 B
Docker
28 lines
652 B
Docker
FROM python:3.12-slim
|
|
|
|
ENV PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
PYTHONPATH=/app/src \
|
|
APP_HOST=0.0.0.0 \
|
|
APP_PORT=4173
|
|
|
|
WORKDIR /app
|
|
|
|
RUN addgroup --system app && adduser --system --ingroup app app
|
|
|
|
COPY requirements.txt ./
|
|
RUN python -m pip install --no-cache-dir --requirement requirements.txt
|
|
|
|
COPY server.py ./
|
|
COPY src ./src
|
|
COPY web ./web
|
|
|
|
USER app
|
|
|
|
EXPOSE 4173
|
|
|
|
HEALTHCHECK --interval=10s --timeout=3s --start-period=5s --retries=5 \
|
|
CMD ["python", "-c", "import os, urllib.request; port = os.getenv('APP_PORT', '4173'); urllib.request.urlopen(f'http://127.0.0.1:{port}/', timeout=2)"]
|
|
|
|
CMD ["python", "server.py"]
|