# Stage 0, based on Node.js, to build and compile Angular ARG DEPENDENCY_PROXY= FROM ${DEPENDENCY_PROXY}node:18.17-slim AS build WORKDIR /app # Copy the package.json file first in order to cache the modules COPY ./package.json . COPY ./package-lock.json . # Install npm dependencies RUN npm install --silent # Copy the project COPY angular.json . COPY tsconfig.json . COPY tsconfig.app.json . COPY ngsw-config.json . COPY /nginx/nginx.conf . COPY /src ./src ARG conf # Building the Angular app /dist i18n RUN npm run build:prod # Stage 1, based on Nginx, to have only the compiled app FROM ${DEPENDENCY_PROXY}nginxinc/nginx-unprivileged:1.25 # Copy nginx modified conf with template (cf. "Using environment variables in nginx configuration" in https://hub.docker.com/_/nginx ) COPY nginx/templates/default.conf.template /etc/nginx/templates/default.conf.template # copy artifact build from the 'build environment' COPY --from=build /app/dist/fr /usr/share/nginx/html # Add outdated browser page ADD ./nginx/outdated.html /usr/share/nginx/html RUN ls -l /usr/share/nginx/html # expose port 8080 EXPOSE 8080 # run nginx CMD ["nginx", "-g", "daemon off;"]