From 01c0e480acd9671c207a33b034b6bff32238288f Mon Sep 17 00:00:00 2001 From: "groombook-paperclip[bot]" <268890960+groombook-paperclip[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2026 03:13:47 +0000 Subject: [PATCH] Fix API crash: add exports field and clean runtime image (#44) The API Docker image was crashing because Node.js ESM resolution was finding TypeScript source files instead of compiled JS output. Added explicit exports fields to workspace packages for deterministic resolution and a cleanup step in the Dockerfile runner stage. Co-authored-by: Groom Book CEO Co-authored-by: Paperclip --- .dockerignore | 9 +++++++++ apps/api/Dockerfile | 3 +++ packages/db/package.json | 7 +++++++ packages/types/package.json | 7 +++++++ 4 files changed, 26 insertions(+) create mode 100644 .dockerignore diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..edb296c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,9 @@ +node_modules +.git +*.md +.github +apps/e2e +apps/web/dist +apps/api/dist +packages/db/dist +packages/types/dist diff --git a/apps/api/Dockerfile b/apps/api/Dockerfile index 97526cf..c7e235d 100644 --- a/apps/api/Dockerfile +++ b/apps/api/Dockerfile @@ -36,6 +36,9 @@ COPY --from=builder /app/packages/db/package.json packages/db/package.json COPY --from=builder /app/packages/types/dist packages/types/dist COPY --from=builder /app/packages/types/package.json packages/types/package.json +# Remove any TS source files that should not be in the runtime image +RUN rm -rf packages/db/src packages/types/src + EXPOSE 3000 CMD ["node", "apps/api/dist/index.js"] diff --git a/packages/db/package.json b/packages/db/package.json index ff1747a..3c8a012 100644 --- a/packages/db/package.json +++ b/packages/db/package.json @@ -2,8 +2,15 @@ "name": "@groombook/db", "version": "0.0.1", "private": true, + "type": "module", "main": "./dist/index.js", "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, "scripts": { "build": "tsc", "generate": "drizzle-kit generate", diff --git a/packages/types/package.json b/packages/types/package.json index e1cb6c0..9265ada 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -2,8 +2,15 @@ "name": "@groombook/types", "version": "0.0.1", "private": true, + "type": "module", "main": "./dist/index.js", "types": "./src/index.ts", + "exports": { + ".": { + "types": "./src/index.ts", + "default": "./dist/index.js" + } + }, "scripts": { "build": "tsc", "typecheck": "tsc --noEmit"