From 5eae00961c2b79f78fc637aa8e16eef1e2865a2b Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Sat, 14 Mar 2026 10:37:46 +0700 Subject: [PATCH] chore: optimize docker image build pipeline --- .dockerignore | 25 +++++++++++++++++++++++++ Dockerfile | 15 ++++++++++----- 2 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..510f030 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,25 @@ +.git +.gitignore +.DS_Store +*.log +node_modules +.pnpm-store +npm-debug.log* +yarn-debug.log* +yarn-error.log* +.env +.env.* +!.env.example +__pycache__ +*.pyc +*.pyo +.venv +venv +.pytest_cache +.mypy_cache +coverage +.coverage +.nuxt +.output +dist +build diff --git a/Dockerfile b/Dockerfile index 0b8258d..4751a48 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,11 @@ -FROM node:22-alpine AS builder +FROM node:22-alpine AS deps WORKDIR /app -COPY package.json ./ -RUN npm install +COPY package.json package-lock.json ./ +RUN npm ci + +FROM deps AS builder COPY prisma ./prisma RUN npx prisma generate @@ -12,16 +14,19 @@ COPY tsconfig.json ./ COPY src ./src RUN npm run build -FROM node:22-alpine +FROM deps AS runtime-deps + +FROM node:22-alpine AS runtime RUN apk add --no-cache curl jq WORKDIR /app COPY package.json ./ -RUN npm install --omit=dev +COPY --from=runtime-deps /app/node_modules ./node_modules COPY --from=builder /app/node_modules/.prisma ./node_modules/.prisma +COPY --from=builder /app/node_modules/@prisma/client ./node_modules/@prisma/client COPY --from=builder /app/dist ./dist COPY prisma ./prisma COPY scripts ./scripts