docker: update dockerfile to use pnpm features
This commit is contained in:
32
Dockerfile
32
Dockerfile
@@ -1,15 +1,25 @@
|
||||
FROM node:18-bullseye-slim
|
||||
FROM node:20-bullseye-slim AS base
|
||||
ENV PNPM_HOME="/pnpm"
|
||||
ENV PATH="$PNPM_HOME:$PATH"
|
||||
|
||||
FROM base AS build
|
||||
WORKDIR /app
|
||||
COPY . /app
|
||||
|
||||
RUN corepack enable
|
||||
RUN apt-get update && \
|
||||
apt-get install -y python3 build-essential
|
||||
|
||||
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
||||
pnpm install --prod --frozen-lockfile
|
||||
|
||||
RUN pnpm deploy --filter=@imput/cobalt-api --prod /prod/api
|
||||
|
||||
FROM base AS api
|
||||
WORKDIR /app
|
||||
|
||||
COPY package*.json ./
|
||||
COPY --from=build /prod/api /app
|
||||
COPY --from=build /app/.git /app/.git
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y git python3 build-essential && \
|
||||
npm ci && \
|
||||
npm cache clean --force && \
|
||||
apt purge --autoremove -y python3 build-essential && \
|
||||
rm -rf ~/.cache/ /var/lib/apt/lists/*
|
||||
|
||||
COPY . .
|
||||
EXPOSE 9000
|
||||
CMD [ "node", "src/cobalt" ]
|
||||
CMD [ "node", "src/cobalt" ]
|
||||
Reference in New Issue
Block a user