2023-07-15 17:46:19 +03:00
|
|
|
# ======== Multi-stage base ==========
|
2023-09-10 21:34:04 +03:00
|
|
|
FROM node:bullseye-slim as node-base
|
2023-07-15 17:46:19 +03:00
|
|
|
RUN apt-get update -qq && \
|
|
|
|
apt-get upgrade -y && \
|
|
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
|
|
|
|
# ======= Build =======
|
2023-08-29 00:34:56 +03:00
|
|
|
ARG BUILD_TYPE=production
|
2023-07-15 17:46:19 +03:00
|
|
|
FROM node-base as builder
|
|
|
|
|
|
|
|
WORKDIR /result
|
|
|
|
|
2023-07-26 23:11:00 +03:00
|
|
|
COPY ./ ./
|
2023-08-29 00:34:56 +03:00
|
|
|
COPY ./env/.env.$BUILD_TYPE ./
|
|
|
|
RUN rm -rf ./env
|
2023-07-26 23:11:00 +03:00
|
|
|
RUN npm install
|
2023-08-08 16:14:58 +03:00
|
|
|
ENV NODE_ENV production
|
2023-07-15 17:46:19 +03:00
|
|
|
RUN npm run build
|
|
|
|
|
|
|
|
# ========= Server =======
|
|
|
|
FROM node-base as product-server
|
|
|
|
|
|
|
|
ENV NODE_ENV production
|
|
|
|
|
|
|
|
# Install serve util
|
|
|
|
RUN npm install -g serve
|
|
|
|
|
|
|
|
# Setup USER
|
|
|
|
RUN adduser --system --group app
|
|
|
|
USER node
|
|
|
|
|
|
|
|
# Bring up deployment files
|
|
|
|
WORKDIR /home/node
|
2023-07-26 23:11:00 +03:00
|
|
|
COPY --chown=node:node --from=builder /result/dist ./
|
2023-07-15 17:46:19 +03:00
|
|
|
|
|
|
|
# Start server through docker-compose
|
|
|
|
# serve -s /home/node -l 3000
|