diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..5e622e4 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,23 @@ +# Multi-stage +# 1) Node image for building frontend assets +# 2) nginx stage to serve frontend assets + +# Name the node stage "builder" +FROM node:16 AS builder +# Set working directory +WORKDIR /app +# Copy all files from current directory to working dir in image +COPY . . +# install node modules and build assets +RUN npm i && npm run build + +# nginx state for serving content +FROM nginx:alpine +# Set working directory to nginx asset directory +WORKDIR /usr/share/nginx/html +# Remove default nginx static assets +RUN rm -rf ./* +# Copy static assets from builder stage +COPY --from=builder /app/dist . +# Containers run nginx with global directives and daemon off +ENTRYPOINT ["nginx", "-g", "daemon off;"] \ No newline at end of file