From a9b198602da1995b8e956194345b8216d39d7e21 Mon Sep 17 00:00:00 2001 From: jay23606 <4602056+jay23606@users.noreply.github.com> Date: Sat, 24 Oct 2026 06:58:28 -0400 Subject: [PATCH] Exclude node_modules from root Docker context --- .dockerignore | 3 +++ tests/dockerignore.test.mjs | 11 +++++++++++ 2 files changed, 14 insertions(+) create mode 100644 tests/dockerignore.test.mjs diff --git a/.dockerignore b/.dockerignore index 4aef71a..078f07d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -58,3 +58,6 @@ __pycache__/ # src/ (source code) # *.ts, *.js, *.java (source files) # docker-compose.yml, Dockerfile, .dockerignore +# Dependencies (exclude installed, but KEEP package.json and package-lock.json) +node_modules/ +**/node_modules/ diff --git a/tests/dockerignore.test.mjs b/tests/dockerignore.test.mjs new file mode 100644 index 0000000..66964dd --- /dev/null +++ b/tests/dockerignore.test.mjs @@ -0,0 +1,11 @@ +import assert from 'node:assert/strict'; +import { readFile } from 'node:fs/promises'; +import test from 'node:test'; + +test('root Docker build context excludes installed Node dependencies', async () => { + const dockerignore = await readFile(new URL('../.dockerignore', import.meta.url), 'utf8'); + const patterns = new Set(dockerignore.split(/\r?\n/)); + + assert.ok(patterns.has('node_modules/'), 'missing node_modules/ exclusion'); + assert.ok(patterns.has('**/node_modules/'), 'missing **/node_modules/ exclusion'); +});