frontend/Dockerfile
Rama main · réplica de lectura del repositorio original.
FROM node:22-alpine AS build
WORKDIR /app
# npm ci en lloc de npm install: instal·la exactament el que diu el lock i
# s'atura amb error si el lock i el package.json no concorden, en lloc de
# resoldre versions noves silenciosament. El lock és obligatori (sense *).
COPY package.json package-lock.json /app/
RUN npm ci
COPY . /app
# Subruta on es publicarà (p.ex. /demo/); per defecte, l'arrel del domini.
ARG VITE_BASE_PATH=/
ENV VITE_BASE_PATH=$VITE_BASE_PATH
RUN npm run build
FROM nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 80