Images docker, construction avancée

Nous allons construire une image de base intelligente qui pourra être utilisée par des projets Angular.

Voici le cahier des charges :

  • Un stage intermédiaire doit contenir ng-cli
  • Un stage intermédiaire doit permettre de créer un environnement de développement Angular (ng serve)
  • Le stage final de l'image doit déclencher la compilation de l'application (ng build) lors de la construction d'une image enfant.
  • Taguer l'image finale angular:build
  • Taguer le stage correspondant à l'environnement de développement angular:dev
  • Taguer le stage correspond à ng cli angular:cli

On doit pouvoir utiliser cette image de la manière suivante pour créer une image dédiée au runtime :

FROM angular:build as builder
FROM nginx
COPY --from=builder /app/dist /usr/share/nginx/html

Remarque : le tout peut se faire en 10 lignes