Changeset View
Changeset View
Standalone View
Standalone View
web/cashtab/Dockerfile
# Multi-stage | # Multi-stage | ||||
# 1) Node image for building frontend assets | # 1) Node image for building frontend assets | ||||
# 2) nginx stage to serve frontend assets | # 2) nginx stage to serve frontend assets | ||||
# Stage 1 | # Stage 1 | ||||
FROM node:15-buster-slim AS builder | FROM node:15-buster-slim AS builder | ||||
# Set working directory | |||||
WORKDIR /app | # Install some dependencies before building | ||||
# Copy all files from current directory to working dir in image | |||||
COPY . . | |||||
# Install git, required for installing some npm modules | |||||
RUN apt-get update && \ | RUN apt-get update && \ | ||||
apt-get upgrade -y && \ | apt-get upgrade -y && \ | ||||
apt-get install -y git && \ | apt-get install -y git && \ | ||||
apt-get install -y python | apt-get install -y python | ||||
WORKDIR /app | |||||
# Copy all files from current directory to working dir in image | |||||
COPY . . | |||||
# install node modules and build assets | # install node modules and build assets | ||||
RUN npm install && npm run build | RUN npm install && npm run build | ||||
# Stage 2 | # Stage 2 | ||||
FROM nginx | FROM nginx | ||||
COPY nginx.conf /etc/nginx/conf.d/default.conf | COPY nginx.conf /etc/nginx/conf.d/default.conf | ||||
# Set working directory to nginx asset directory | # Set working directory to nginx asset directory | ||||
# Copy static assets from builder stage | # Copy static assets from builder stage | ||||
COPY --from=builder /app/build /usr/share/nginx/html/ | COPY --from=builder /app/build /usr/share/nginx/html/ | ||||
EXPOSE 80 | EXPOSE 80 | ||||
# Containers run nginx with global directives and daemon off | # Containers run nginx with global directives and daemon off | ||||
ENTRYPOINT ["nginx", "-g", "daemon off;"] | ENTRYPOINT ["nginx", "-g", "daemon off;"] | ||||
No newline at end of file |