From 7d266bfcc0b18bc9a8030b0aa90a1c01d99dc593 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Thu, 16 Apr 2026 15:48:12 -0700 Subject: [PATCH] fix(docker): INFRA-gap-02 unblock full-stack docker compose up MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Three coordinated fixes so 'docker compose up cosmos-emulator platform-service cowork-service --wait' completes end-to-end (pre-existing blocker surfaced by W1 post-push review). 1. Remove harmful prepare:tsc from @bytelyst/react-native-platform-sdk package.json. The hook fires during pnpm install --frozen-lockfile against an empty src/ tree (because Dockerfiles COPY package.jsons before sources), tsc aborts, install fails. Canonical monorepo build flow is pnpm -r build using the existing build:tsc script; prepare only runs for git+ URL installs (which this published package doesn't use), so removing it is lossless. 2. Add --ignore-scripts to platform-service + mcp-server Dockerfile install steps. Mirrors the pattern already used by extraction-service/Dockerfile, dashboards/admin-web/Dockerfile, dashboards/tracker-web/Dockerfile. Belt-and-braces against future prepare-hook regressions in any workspace package. 3. Expand .dockerignore node_modules/dist/.next/coverage to **/ globs. Docker's .dockerignore with bare 'node_modules' only matches root-level; nested packages/*/node_modules/ were being COPY'd into images, poisoning them with host-absolute-path .bin shims (e.g. @bytelyst/storage's tsc shim resolved to /learning_voice_ai_agent/node_modules/.pnpm/... which doesn't exist in the container → MODULE_NOT_FOUND). The glob fix makes COPY packages/ packages/ deliver source only. Gap: INFRA-gap-02 Verified: pnpm install --frozen-lockfile ✅ pnpm --filter @bytelyst/react-native-platform-sdk build ✅ pnpm --filter @bytelyst/react-native-platform-sdk typecheck ✅ docker compose build platform-service ✅ (previously failed) docker compose build mcp-server ✅ docker compose build extraction-service ✅ --- .dockerignore | 4 ++++ packages/react-native-platform-sdk/package.json | 1 - services/mcp-server/Dockerfile | 4 ++-- services/platform-service/Dockerfile | 4 ++-- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.dockerignore b/.dockerignore index 5654eb29..98f82dca 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,7 +1,11 @@ node_modules +**/node_modules dist +**/dist .next +**/.next coverage +**/coverage *.log .env .env.local diff --git a/packages/react-native-platform-sdk/package.json b/packages/react-native-platform-sdk/package.json index 69d40b58..a44d670e 100644 --- a/packages/react-native-platform-sdk/package.json +++ b/packages/react-native-platform-sdk/package.json @@ -37,7 +37,6 @@ }, "scripts": { "build": "tsc", - "prepare": "tsc", "test": "vitest run --pool forks", "lint": "eslint src/**/*.ts", "typecheck": "tsc --noEmit" diff --git a/services/mcp-server/Dockerfile b/services/mcp-server/Dockerfile index 3bcde9b5..ff6f3da8 100644 --- a/services/mcp-server/Dockerfile +++ b/services/mcp-server/Dockerfile @@ -73,8 +73,8 @@ COPY dashboards/admin-web/package.json dashboards/admin-web/ COPY dashboards/tracker-web/package.json dashboards/tracker-web/ COPY scripts/package.json scripts/ -# Install all workspace deps -RUN pnpm install --frozen-lockfile +# Install all workspace deps without running prepare hooks before sources exist. +RUN pnpm install --frozen-lockfile --ignore-scripts # Copy source COPY packages/ packages/ diff --git a/services/platform-service/Dockerfile b/services/platform-service/Dockerfile index 4d9be785..5b587551 100644 --- a/services/platform-service/Dockerfile +++ b/services/platform-service/Dockerfile @@ -73,8 +73,8 @@ COPY dashboards/admin-web/package.json dashboards/admin-web/ COPY dashboards/tracker-web/package.json dashboards/tracker-web/ COPY scripts/package.json scripts/ -# Install all workspace deps -RUN pnpm install --frozen-lockfile +# Install all workspace deps without running prepare hooks before sources exist. +RUN pnpm install --frozen-lockfile --ignore-scripts # Copy source COPY packages/ packages/