28 lines
658 B
Docker
28 lines
658 B
Docker
FROM node:19.4-bullseye AS build
|
|
|
|
# Specify working directory other than /
|
|
WORKDIR /usr/src/app
|
|
|
|
# Copy only files required to install
|
|
# dependencies (better layer caching)
|
|
COPY package*.json ./
|
|
|
|
# Use cache mount to speed up install of existing dependencies
|
|
RUN --mount=type=cache,target=/usr/src/app/.npm \
|
|
npm set cache /usr/src/app/.npm && \
|
|
npm install
|
|
|
|
COPY . .
|
|
|
|
RUN npm run build
|
|
|
|
# Use separate stage for deployable image
|
|
FROM nginx:1.23-alpine
|
|
|
|
COPY nginx.conf /etc/nginx/conf.d/default.conf
|
|
|
|
COPY --from=build usr/src/app/dist/ /usr/share/nginx/html
|
|
|
|
EXPOSE 80
|
|
|
|
# No CMD specified... will uses CMD/ENTRYPOINT from base image (nginx:1.23-alpine) |