# syntax=docker/dockerfile:1 ############################ # Build stage ############################ FROM node:20-alpine AS build WORKDIR /app # pnpm via Corepack ENV PNPM_HOME="/root/.local/share/pnpm" ENV PATH="$PNPM_HOME:$PATH" RUN corepack enable && corepack prepare pnpm@9.12.0 --activate # Installera beroenden COPY package.json pnpm-lock.yaml* ./ RUN pnpm install --frozen-lockfile # App-källor COPY . . # --- Build args (styr Vite) --- # Backend-url (kan sättas i Drone secrets) ARG VITE_API_BASE_URL=https://rubble.se/hemhub/api # Base path för proxy under /hemhub/ ARG VITE_BASE_PATH=/hemhub/app ENV VITE_API_BASE_URL=https://rubble.se/hemhub/api ENV VITE_BASE_PATH=/hemhub/app # Bygg (Vite läser env vid build) RUN pnpm build ############################ # Runtime stage (Nginx) ############################ FROM nginx:1.27-alpine AS runtime # Lägg in Nginx-konfig (SPA fallback) COPY ./.docker/nginx.conf /etc/nginx/conf.d/default.conf # Statiska filer från builden COPY --from=build /app/dist /usr/share/nginx/html # Hälsokoll (valfritt) HEALTHCHECK --interval=30s --timeout=3s --retries=3 CMD wget -qO- http://127.0.0.1/ || exit 1 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]