38 lines
648 B
Docker
38 lines
648 B
Docker
|
|
ARG NODE_VERSION=22.17.0
|
|
|
|
FROM node:${NODE_VERSION}-slim as build
|
|
|
|
# Enable pnpm
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
RUN corepack enable
|
|
|
|
WORKDIR /app
|
|
|
|
COPY ecosystem.config.cjs ./
|
|
COPY ./package.json /app/
|
|
COPY ./pnpm-lock.yaml /app/
|
|
|
|
## Install dependencies
|
|
RUN pnpm install --shamefully-hoist
|
|
|
|
COPY . ./
|
|
|
|
RUN pnpm run build
|
|
|
|
FROM node:${NODE_VERSION}-slim
|
|
WORKDIR /app
|
|
|
|
RUN npm install -g pm2
|
|
|
|
COPY --from=build /app/.output /app/.output
|
|
COPY --from=build /app/ecosystem.config.cjs /app/ecosystem.config.cjs
|
|
|
|
ENV PORT=3001
|
|
ENV HOST=0.0.0.0
|
|
ENV NODE_ENV=production
|
|
|
|
EXPOSE 3001
|
|
|
|
CMD ["pm2-runtime", "start", "ecosystem.config.cjs"] |