32 lines
718 B
Docker
32 lines
718 B
Docker
# Base Env
|
|
FROM docker.io/library/node:slim AS base
|
|
|
|
RUN --mount=type=cache,target=/var/cache/apt \
|
|
apt-get update \
|
|
&& apt-get install -y --no-install-recommends ca-certificates curl git gnupg \
|
|
&& rm -rf /var/lib/apt/lists/*
|
|
|
|
ENV PNPM_HOME="/pnpm"
|
|
ENV PATH="$PNPM_HOME:$PATH"
|
|
RUN corepack enable
|
|
WORKDIR /builder
|
|
|
|
# Builder
|
|
FROM base AS builder
|
|
ARG SENTRY_AUTH_TOKEN
|
|
|
|
COPY package.json /builder/package.json
|
|
COPY pnpm-lock.yaml /builder/pnpm-lock.yaml
|
|
RUN --mount=type=cache,id=pnpm,target=/pnpm/store \
|
|
pnpm install --frozen-lockfile
|
|
|
|
COPY . /builder
|
|
RUN pnpm install --frozen-lockfile
|
|
RUN pnpm run build
|
|
|
|
# Main
|
|
FROM docker.io/library/node:slim
|
|
|
|
WORKDIR /app
|
|
COPY --from=builder /builder/dist /app
|