FROM harbor.pmagnus.cloud/dockerhub-cache/library/node:22-alpine AS css

WORKDIR /build
COPY package.json package-lock.json ./
RUN npm ci
COPY resources/css/ resources/css/
COPY app/ app/
COPY tailwind.config.js ./
RUN npm run css:build

FROM harbor.pmagnus.cloud/dockerhub-cache/library/python:3.13-alpine

WORKDIR /app
COPY requirements.txt .
RUN apk upgrade --no-cache \
 && pip install --no-cache-dir -r requirements.txt \
 && pip uninstall -y pip setuptools msgpack \
 && rm -rf /usr/local/lib/python3.13/ensurepip

COPY app/ app/
COPY resources/public/ resources/public/
COPY --from=css /build/resources/public/css/output.css resources/public/css/output.css

ARG BUILD_SHA=unknown
ENV APP_VERSION=${BUILD_SHA}

EXPOSE 4040

CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "4040"]
