From a9454182f9f5729c2c6a0f39bc9dc2310e75e109 Mon Sep 17 00:00:00 2001 From: Rohit Amarnath <88762+ramarnat@users.noreply.github.com> Date: Tue, 23 Sep 2025 14:34:26 -0400 Subject: [PATCH] feat: optimize Docker build context with targeted .dockerignore files - Add build-specific .dockerignore files to reduce context size - packages/db: exclude all frontend assets (300MB+ savings) - packages/api: exclude frontend public assets, keep backend needs - packages/web: keep public assets, exclude only browser extensions - Root: exclude browser extensions (400MB+ savings) as fallback This reduces Docker build context from ~336MB to much smaller sizes improving build times significantly. --- .dockerignore | 4 ++++ packages/api/.dockerignore | 10 ++++++++++ packages/db/.dockerignore | 8 ++++++++ packages/web/.dockerignore | 6 ++++++ 4 files changed, 28 insertions(+) diff --git a/.dockerignore b/.dockerignore index d1e5afb1e..58157d36d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -8,3 +8,7 @@ .secrets*.yaml apple android + +# Browser extension builds (large and not needed for server builds) +pkg/extension +pkg/extension-v3 diff --git a/packages/api/.dockerignore b/packages/api/.dockerignore index 4534f100a..2362e53b8 100644 --- a/packages/api/.dockerignore +++ b/packages/api/.dockerignore @@ -6,3 +6,13 @@ Dockerfile .dockerignore *.yaml .secrets*.yaml + +# Exclude large frontend assets not needed for API +../../packages/web/public/pspdfkit-lib +../../packages/web/public/static +../../packages/web/public/pdfjs-dist +../../packages/web/public/*.mjs +../../pkg/extension +../../pkg/extension-v3 +../../apple +../../android diff --git a/packages/db/.dockerignore b/packages/db/.dockerignore index 2310bc768..4a6e9dd3c 100644 --- a/packages/db/.dockerignore +++ b/packages/db/.dockerignore @@ -2,3 +2,11 @@ node_modules .env* Dockerfile .dockerignore + +# Exclude large assets not needed for DB migrations +../../packages/web/public/pspdfkit-lib +../../packages/web/public/static +../../pkg/extension +../../pkg/extension-v3 +../../apple +../../android diff --git a/packages/web/.dockerignore b/packages/web/.dockerignore index 6a5fc75f3..2dcdfd454 100644 --- a/packages/web/.dockerignore +++ b/packages/web/.dockerignore @@ -7,3 +7,9 @@ Dockerfile *.yaml .secrets*.yaml +# Web build needs its public assets, but exclude browser extensions +../../pkg/extension +../../pkg/extension-v3 +../../apple +../../android +