bullpen/backend/Dockerfile

42 lines
1023 B
Docker

ARG NODE_VERSION=18.0.0
FROM node:${NODE_VERSION}-alpine AS base
WORKDIR /user/src/app
EXPOSE 8080
FROM base AS production
ENV NODE_ENV=production
RUN --mount=type=bind,source=package.json,target=package.json \
--mount=type=bind,source=package-lock.json,target=package-lock.json \
--mount=type=cache,target=/root/.npm \
npm ci --omit=dev
USER node
COPY . .
COPY .env.production .env
CMD ["node", "server.js"]
FROM base AS development
ENV NODE_ENV=development
RUN --mount=type=bind,source=package.json,target=package.json \
--mount=type=bind,source=package-lock.json,target=package-lock.json \
--mount=type=cache,target=/root/.npm \
npm ci --include=dev
USER node
COPY . .
COPY .env.development .env
CMD ["npm", "run", "start:dev"]
#FROM node:20-alpine as build
#WORKDIR /app
#COPY package*.json ./
#RUN npm install --omit dev
#COPY . .
#
#FROM node:20-alpine
#WORKDIR /app
#COPY --from=build /app /app
#ENV NODE_ENV=production
#COPY .env.production .env
#EXPOSE 8080
#CMD ["node", "server.js"]