Files
zavrsni-rad-otel-app/backend/Dockerfile
Domagoj Andrić dbf1a05b08
All checks were successful
CI / test (push) Successful in 53s
CI / test-analytics (push) Successful in 2m1s
CI / build-api (push) Successful in 3m22s
CI / build-frontend (push) Successful in 2m6s
CI / build-analytics (push) Successful in 2m45s
Split backend properly
2026-05-11 13:56:20 +02:00

42 lines
981 B
Docker

# syntax=docker/dockerfile:1.7
FROM rockylinux/rockylinux:10 AS base
RUN dnf install -y python3 && dnf clean all
ENV PYTHONUNBUFFERED=1 \
PYTHONDONTWRITEBYTECODE=1 \
UV_COMPILE_BYTECODE=1 \
UV_LINK_MODE=copy \
UV_PROJECT_ENVIRONMENT=/app/.venv
COPY --from=ghcr.io/astral-sh/uv:latest /uv /usr/local/bin/uv
WORKDIR /app
FROM base AS deps
COPY pyproject.toml uv.lock* ./
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --frozen --no-install-project --no-dev
FROM deps AS app-build
COPY app/ ./app/
RUN --mount=type=cache,target=/root/.cache/uv \
uv sync --frozen --no-dev
FROM base AS final
RUN groupadd --gid 10001 appgroup && \
useradd --uid 10001 --gid 10001 --no-create-home --shell /sbin/nologin appuser
COPY --from=app-build --chown=appuser:appgroup /app /app
USER appuser
WORKDIR /app
ENV PATH="/app/.venv/bin:$PATH"
EXPOSE 8000
ENTRYPOINT ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000", "--no-access-log"]