From cfb63fe6f984eb9c3309793f60e879c231d124c6 Mon Sep 17 00:00:00 2001 From: WJG Date: Sun, 2 Jun 2024 11:49:07 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BC=98=E5=8C=96=20docker=20runtime?= =?UTF-8?q?=20=E5=88=86=E6=AE=B5=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 6 ++++-- Dockerfile | 14 +++++++++----- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/.dockerignore b/.dockerignore index 7e9c39e..6f705f5 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,14 +1,16 @@ # 排除全部文件 **/* -# 只保留相关构建文件 +# 只保留构建相关的文件 !src -!prisma !app.js !package.json !pnpm-lock.yaml !tsconfig.json !tsup.config.ts +!prisma/engines +!prisma/migrations +!prisma/schema.prisma diff --git a/Dockerfile b/Dockerfile index c8e0a2d..bc89d8d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -10,20 +10,24 @@ FROM env-$TARGETARCH as base WORKDIR /app ARG TARGETARCH -FROM base as build +FROM base as runtime COPY . . RUN [ ! "$TARGETARCH" = "arm" ] && rm -rf ./prisma/engines || true RUN --mount=type=cache,target=/root/.npm \ npm install -g pnpm@9.1.1 RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ - pnpm install && pnpm build + pnpm install --production && pnpm prisma generate + +FROM runtime as dist +RUN --mount=type=cache,target=/root/.local/share/pnpm/store \ + pnpm install && pnpm tsup FROM base as release COPY app.js . COPY package.json . -COPY --from=build /app/dist ./dist -COPY --from=build /app/prisma ./prisma -COPY --from=build /app/node_modules ./node_modules +COPY --from=dist /app/dist ./dist +COPY --from=dist /app/prisma ./prisma +COPY --from=runtime /app/node_modules ./node_modules CMD npm run start