From 39460df61d9cbbd6fd89efda8d934dd765308473 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marko=20Markovi=C4=87?= Date: Thu, 23 Apr 2026 21:52:22 +0400 Subject: [PATCH] Fix prod docker build: native modules and frontend devDeps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Per-package onlyBuiltDependencies so pnpm 10 actually compiles native modules (isolated-vm, argon2, sqlite3, sharp) — root workspace config isn't visible when compose mounts a single package into /app. Frontend container now installs with devDeps (so tsc/vite exist), prunes after build, and gains a `start` script that serves the build via vite preview on 0.0.0.0:3000. Drop obsolete compose `version` key. --- backend/package.json | 8 ++++++++ docker-compose.yml | 5 ++--- frontend/package.json | 6 ++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/backend/package.json b/backend/package.json index a4214e7..d86382b 100644 --- a/backend/package.json +++ b/backend/package.json @@ -18,5 +18,13 @@ "devDependencies": { "nodemon": "3.1.14", "uuid": "14.0.0" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "argon2", + "isolated-vm", + "sharp", + "sqlite3" + ] } } diff --git a/docker-compose.yml b/docker-compose.yml index ca0858e..f393c3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: '3' - networks: main: external: true @@ -48,8 +46,9 @@ services: - | npm i -g pnpm cd /app - pnpm install --production + pnpm install --frozen-lockfile sleep 10 rm -f .env pnpm run build + pnpm prune --prod pnpm run start diff --git a/frontend/package.json b/frontend/package.json index fc14239..add1f12 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -12,6 +12,7 @@ "dev": "vite", "build": "tsc -b && vite build", "preview": "vite preview", + "start": "vite preview --host 0.0.0.0 --port 3000", "typecheck": "tsc -b --noEmit", "format": "prettier --ignore-unknown --write .", "format:check": "prettier --check ." @@ -46,5 +47,10 @@ "tailwindcss": "4.2.4", "typescript": "6.0.3", "vite": "8.0.10" + }, + "pnpm": { + "onlyBuiltDependencies": [ + "esbuild" + ] } }