42 lines
1.1 KiB
Docker
42 lines
1.1 KiB
Docker
FROM python:3.11-slim
|
|||
|
|
|
||
|
|
ENV PYTHONUNBUFFERED=1 \
|
||
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
||
|
|
PIP_NO_CACHE_DIR=1 \
|
||
|
|
PIP_DISABLE_PIP_VERSION_CHECK=1
|
||
|
|
|
||
|
|
# Build tools for libpff-python, curl for healthcheck, libjpeg for qrcode PIL
|
||
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||
|
|
build-essential \
|
||
|
|
curl \
|
||
|
|
libjpeg-dev \
|
||
|
|
zlib1g-dev \
|
||
|
|
&& rm -rf /var/lib/apt/lists/*
|
||
|
|
|
||
|
|
WORKDIR /app
|
||
|
|
|
||
|
|
COPY backend/requirements.txt /app/backend/requirements.txt
|
||
|
|
RUN pip install --upgrade pip && \
|
||
|
|
pip install -r /app/backend/requirements.txt
|
||
|
|
|
||
|
|
COPY backend /app/backend
|
||
|
|
COPY frontend /app/frontend
|
||
|
|
COPY admin_frontend /app/admin_frontend
|
||
|
|
COPY entrypoint.sh /app/entrypoint.sh
|
||
|
|
|
||
|
|
RUN chmod +x /app/entrypoint.sh && \
|
||
|
|
mkdir -p /app/data
|
||
|
|
|
||
|
|
ENV DATA_DIR=/app/data \
|
||
|
|
FRONTEND_DIR=/app/frontend \
|
||
|
|
ADMIN_FRONTEND_DIR=/app/admin_frontend \
|
||
|
|
PYTHONPATH=/app/backend \
|
||
|
|
COOKIE_SECURE=false
|
||
|
|
|
||
|
|
EXPOSE 8000
|
||
|
|
|
||
|
|
HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=3 \
|
||
|
|
CMD curl -fsS http://localhost:8000/api/health || exit 1
|
||
|
|
|
||
|
|
CMD ["/app/entrypoint.sh"]
|