21 lines
707 B
Docker
21 lines
707 B
Docker
FROM python:3.12-slim
|
|
ENV PYTHONDONTWRITEBYTECODE=1 PYTHONUNBUFFERED=1
|
|
WORKDIR /app
|
|
COPY backend/requirements.lock ./
|
|
RUN pip install --no-cache-dir -r requirements.lock
|
|
COPY backend/pyproject.toml ./
|
|
COPY backend/app ./app
|
|
COPY backend/alembic ./alembic
|
|
COPY backend/alembic.ini ./
|
|
COPY backend/tests ./tests
|
|
COPY seed ./seed
|
|
COPY knowledge ./knowledge
|
|
COPY backend/entrypoint.sh ./entrypoint.sh
|
|
RUN pip install --no-cache-dir --no-deps -e . && chmod +x ./entrypoint.sh \
|
|
&& addgroup --system app && adduser --system --ingroup app --home /app app \
|
|
&& chown -R app:app /app
|
|
# Run migrations and the API as an unprivileged user; nothing here needs root.
|
|
USER app
|
|
EXPOSE 8000
|
|
CMD ["./entrypoint.sh"]
|