Biasanya multiple stage di lakukan di Gitlab CI / Jenkins pada kali ini akan mencoba melakukan multiple stage menggunakan Dockerfile. Case kali ini membuat multistage compile Vuejs sampai deploy ke webserver nginx seperti contoh dibawah.
# build stage # docker image yang digunakan dan dijadikan sebagai build stage FROM node:latest as build-stage # direktori default pada container WORKDIR /app # meng-copy seluruh json ke folder app COPY package*.json ./ # install seluruh package npm RUN npm install # meng-copy seluruh file projek ke workdir COPY . . # update npm RUN npm update # compile Vuejs RUN npm run build # production stage # docker image yang digunakan dan dijadikan sebagai production stage FROM nginx:stable-alpine as production-stage # meng-copy hasil compile pada folder /app/dist ke folder default image nginx COPY --from=build-stage /app/dist /usr/share/nginx/html # open port EXPOSE 80 # mengkunci satu service yang dijalan CMD ["nginx", "-g", "daemon off;"]
Untuk contoh web Vuejs silakan untuk di download pada link referensi.
Link Referensi :
https://github.com/vuejs-templates/webpack
https://vuejs.org/v2/cookbook/dockerize-vuejs-app.html
https://hub.docker.com/_/node/