mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 04:50:36 +03:00
39 lines
774 B
Docker
39 lines
774 B
Docker
# ======== Multi-stage base ==========
|
|
FROM node:bullseye-slim as node-base
|
|
RUN apt-get update -qq && \
|
|
apt-get upgrade -y && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
|
|
# ======= Build =======
|
|
FROM node-base as builder
|
|
|
|
ENV NODE_ENV production
|
|
WORKDIR /result
|
|
|
|
# Install dependencies
|
|
COPY *.json *.js ./
|
|
RUN npm ci --only=production
|
|
|
|
# Build deployment files
|
|
COPY ./public ./public
|
|
COPY ./src ./src
|
|
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
|
|
COPY --chown=node:node --from=builder /result/build ./
|
|
|
|
# Start server through docker-compose
|
|
# serve -s /home/node -l 3000 |