Ctrl K
ComunidadGuías…

Dockerfile

Rama master · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
ARG NODE_VERSION=16
ARG ALPINE_VERSION=


FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS production-dependencies
USER node
WORKDIR /home/node

COPY --chown=node:node [".", "./"]
RUN npm clean-install --omit=dev



FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS builder
USER node
WORKDIR /home/node

COPY --chown=node:node [".", "./"]
COPY --chown=node:node --from=production-dependencies ["/home/node/node_modules", "node_modules/"]

RUN npm install --include=dev
RUN npm run build



FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS runtime-production

USER node
WORKDIR /home/node

COPY --chown=node:node --from=production-dependencies ["/home/node/node_modules", "node_modules/"]
COPY --chown=node:node --from=builder ["/home/node/dist", "dist/"]
COPY --chown=node:node ["server/", "./server"]
COPY --chown=node:node ["public/", "./public"]

CMD [ "node", "server/start.js" ]







# placed last since if the person targeting runtime-production doesn't have BuildKit installed, it'll build everything until the targeted stage
# see: https://docs.docker.com/build/building/multi-stage/#differences-between-legacy-builder-and-buildkit
FROM node:${NODE_VERSION}-alpine${ALPINE_VERSION} AS runtime-development

USER node
WORKDIR /home/node

COPY --chown=node:node --from=builder ["/home/node", "./"]

CMD [ "npm", "run", "serve", "--", "--port", "8082" ]