42 lines
1023 B
Docker
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"]
|