From 430cb1cff60ba1f89d6cd3559584087656b278ef Mon Sep 17 00:00:00 2001 From: Ruslan Bakiev <572431+veikab@users.noreply.github.com> Date: Sat, 14 Mar 2026 10:38:32 +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 2be353d..a3482c5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,22 +1,27 @@ -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 tsconfig.json ./ COPY src ./src RUN npm run build -FROM node:22-alpine +FROM deps AS runtime-deps +RUN npm prune --omit=dev + +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/dist ./dist COPY scripts ./scripts