35 lines
852 B
Docker
35 lines
852 B
Docker
FROM python:3.13-slim AS build
|
|
|
|
ENV UV_LINK_MODE=copy
|
|
WORKDIR /app
|
|
|
|
RUN python -m pip install --no-cache-dir uv
|
|
|
|
COPY pyproject.toml uv.lock ./
|
|
RUN uv sync --locked --no-dev --no-install-project
|
|
|
|
|
|
FROM python:3.13-slim AS run
|
|
|
|
ENV PATH="/app/.venv/bin:${PATH}" \
|
|
PYTHONDONTWRITEBYTECODE=1 \
|
|
PYTHONUNBUFFERED=1 \
|
|
VIRTUAL_ENV=/app/.venv
|
|
|
|
WORKDIR /app
|
|
|
|
RUN useradd --system --create-home --shell /usr/sbin/nologin appuser
|
|
|
|
COPY --from=build --chown=appuser:appuser /app/.venv /app/.venv
|
|
COPY --chown=appuser:appuser adapter /app/adapter
|
|
COPY --chown=appuser:appuser config /app/config
|
|
COPY --chown=appuser:appuser domain /app/domain
|
|
COPY --chown=appuser:appuser repository /app/repository
|
|
COPY --chown=appuser:appuser usecase /app/usecase
|
|
COPY --chown=appuser:appuser main.py /app/main.py
|
|
|
|
USER appuser
|
|
|
|
EXPOSE 8123
|
|
|
|
CMD ["python", "main.py"]
|