|
# Stage 1: Build the Angular app |
|
FROM node:11.15.0-alpine as build |
|
WORKDIR /app |
|
COPY . . |
|
# Se instala automake para que se pueda ejecutar un comando |
|
# que tiene que ver con 'gifsicle' que es una dependencia tiene un script de postinstall |
|
# que se va a ejecutar después de ejecutar el npm install |
|
|
|
#En este caso se agrega zlib-dev porque es una dependencia para el build |
|
RUN apk add autoconf automake alpine-sdk nasm zlib-dev |
|
|
|
# Se utiliza --unsafe-perm para que se pueda ejecutar el script de 'postinstall' de npm |
|
# que sirve para instalar las dependencias de bower |
|
RUN npm install --unsafe-perm |
|
|
|
# Se utiliza el argumento 'configuration' para poder definir el environment |
|
ARG CONFIGURATION=production |
|
RUN npm run build -- --configuration=$CONFIGURATION |
|
|
|
# Stage 2: Serve the Angular app with Nginx |
|
FROM nginx:1.23.4-alpine as nginx |
|
COPY --from=build /app/dist /usr/share/nginx/html |
|
EXPOSE 80 |
|
CMD ["nginx", "-g", "daemon off;"] |
|
|
|
|
|
# Stage 3: Serve the Angular app with ng serve |
|
FROM node:11.15.0-alpine as serve |
|
WORKDIR /app |
|
COPY . . |
|
# Se instala automake para que se pueda ejecutar un comando |
|
# que tiene que ver con 'gifsicle' que es una dependencia tiene un script de postinstall |
|
# que se va a ejecutar después de ejecutar el npm install |
|
RUN apk add autoconf automake alpine-sdk nasm |
|
|
|
# Se utiliza --unsafe-perm para que se pueda ejecutar el script de 'postinstall' de npm |
|
# que sirve para instalar las dependencias de bower |
|
RUN npm install --unsafe-perm |
|
EXPOSE 8080 |
|
CMD ["npm", "run", "serve"] |