whiteboard/Dockerfile

37 lines
638 B
Docker

FROM node:18 as base
# Create app directory
RUN mkdir -p /opt/app
WORKDIR /opt/app
# Install app dependencies
COPY ./package.json package-lock.json ./
RUN npm ci
# Bundle frontend
COPY src ./src
COPY assets ./assets
COPY config ./config
RUN npm run build
#####################
# Final image
#####################
FROM node:18-alpine
ENV NODE_ENV=prod
MAINTAINER cracker0dks
# Create app directory
RUN mkdir -p /opt/app
WORKDIR /opt/app
COPY ./package.json ./package-lock.json config.default.yml ./
RUN npm ci --only=prod
COPY scripts ./scripts
COPY --from=base /opt/app/dist ./dist
EXPOSE 8080
ENTRYPOINT ["npm", "run", "start"]