概要
Dockerビルドが2つの問題で失敗する。
問題1: patches/ ディレクトリがコピーされていない
postinstall.cjs が ../patches/fix-pglite-prisma-bytes.cjs を参照しているが、Dockerfileに COPY patches ./patches がないためビルドが失敗する。
Error: Cannot find module '../patches/fix-pglite-prisma-bytes.cjs'
修正
Dockerfile, Dockerfile.server, Dockerfile.webapp の COPY scripts ./scripts の直後に追加:
問題2: standalone.ts が prisma/migrations を見つけられない
standalone.ts の migrate() は process.cwd() + "/prisma/migrations" を探すが、Docker内のWORKDIRは /repo のため /repo/prisma/migrations を探してしまう。実際のパスは /repo/packages/happy-server/prisma/migrations。
Could not find prisma/migrations directory
修正
CMDを packages/happy-server ディレクトリから実行するよう変更:
CMD ["sh", "-c", "cd packages/happy-server && /repo/node_modules/.bin/tsx sources/standalone.ts migrate && exec /repo/node_modules/.bin/tsx sources/standalone.ts serve"]