rewrite dockerfile to be multi-stage

This commit is contained in:
Lio 2024-07-23 20:21:29 +02:00
parent 3ccbaade89
commit 4973c66e77

View file

@ -1,28 +1,29 @@
FROM node:lts-slim as runtime FROM node:lts AS base
WORKDIR /app WORKDIR /app
# Ensure that both node_modules and package-lock.json are removed. COPY package.json package-lock.json ./
COPY package.json .
RUN rm -rf node_modules
# Perform a fresh installation of npm dependencies. FROM base AS prod-deps
RUN npm install RUN npm ci --omit=dev
FROM base AS build-deps
RUN npm ci
FROM build-deps AS build
# Copy the rest of your application files.
COPY . . COPY . .
ARG POCKETBASE_URL ARG POCKETBASE_URL
ARG PORT=4321
# Set environment variables and expose the appropriate port.
ENV HOST=0.0.0.0
ENV PORT=${PORT}
ENV POCKETBASE_URL=${POCKETBASE_URL} ENV POCKETBASE_URL=${POCKETBASE_URL}
# Build your application.
RUN npm run build RUN npm run build
FROM base AS runtime
COPY --from=prod-deps /app/node_modules ./node_modules
COPY --from=build /app/dist ./dist
ARG PORT=4321
ENV HOST=0.0.0.0
ENV PORT=${PORT}
EXPOSE ${PORT} EXPOSE ${PORT}
# Define the command to run your application.
CMD node ./dist/server/entry.mjs CMD node ./dist/server/entry.mjs