FROM node:26-alpine AS frontend WORKDIR /app/front COPY front/package.json front/package-lock.json ./ RUN npm ci COPY front/ ./ ARG VITE_API_BASE_URL=/api ENV VITE_API_BASE_URL=${VITE_API_BASE_URL} RUN npm run build FROM ghcr.io/aye10032/ramex:1.0.1 AS app WORKDIR /app/backend ENV RAMEX_DATABASE_PATH=/app/backend/data/ramex.sqlite3 \ RAMEX_WORKSPACE_ROOT=/app/backend/workspaces \ RAMEX_MEDIA_ROOT=/app/backend/media \ RAMEX_STATIC_ROOT=/app/backend/static \ PYTHONUNBUFFERED=1 RUN apt-get update \ && apt-get install -y --no-install-recommends \ python3 \ python3-pip \ && rm -rf /var/lib/apt/lists/* RUN pip3 install --no-cache-dir \ fastapi==0.115.* \ uvicorn==0.32.* \ python-multipart==0.0.* \ pydantic==2.10.* \ pydantic-settings==2.7.* \ "sqlmodel>=0.0.22,<0.1" COPY backend/ ./ COPY --from=frontend /app/front/dist ./static EXPOSE 8000 CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]