# ======================================== # Frontend Angular Dockerfile (multi-stage) # ======================================== FROM node:20-alpine AS base WORKDIR /app COPY package*.json ./ # ======================================== # Development: ng serve con hot reload # ======================================== FROM base AS development RUN npm install COPY . . EXPOSE 4200 CMD ["npm", "run", "dev", "--", "--host", "0.0.0.0"] # ======================================== # Build: bundle statico di produzione # ======================================== FROM base AS build RUN npm install COPY . . RUN npm run build # Nota: la build SSR (server.ts/main.server.ts) non è al momento agganciata # ad angular.json ("server" builder option assente), quindi ng build produce # solo il bundle browser in dist/app/browser/. Se in futuro si abilita la SSR, # questo stage andrà aggiornato per servire dist/app/server con Node invece di nginx. # ======================================== # Production: bundle statico servito da nginx # ======================================== FROM nginx:1.27-alpine AS production COPY --from=build /app/dist/app/browser /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80