diff --git a/Dockerfile b/Dockerfile index d84190f..b00d16f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ RUN pnpm install --frozen-lockfile --prod # Copy built application from base stage COPY --from=base /app/dist ./dist +COPY --from=base /app/server-dist ./server-dist # Copy necessary files for runtime COPY --from=base /app/src/server/index.ts ./src/server/index.ts @@ -60,5 +61,5 @@ HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \ CMD node -e "require('http').get('http://localhost:3000/health', (res) => { process.exit(res.statusCode === 200 ? 0 : 1) })" || exit 1 # Start the application with ts-node and dedicated tsconfig for NodeNext -ENV TS_NODE_PROJECT=tsconfig.server.json -CMD ["node", "--loader", "ts-node/esm", "src/server/index.ts"] +# Start the precompiled server JS (kein ts-node im Runtime) +CMD ["node", "server-dist/index.js"] diff --git a/package.json b/package.json index a046ebe..d87ea15 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "check:types": "tsc --noEmit", "dev": "vite", - "build": "tsc -b && vite build", + "build": "tsc -b && vite build && tsc -p tsconfig.server.build.json", "lint": "eslint .", "lint:fix": "eslint . --fix", "preview": "vite preview" diff --git a/tsconfig.server.build.json b/tsconfig.server.build.json new file mode 100644 index 0000000..484e34d --- /dev/null +++ b/tsconfig.server.build.json @@ -0,0 +1,18 @@ +{ + "extends": "./tsconfig.server.json", + "compilerOptions": { + "noEmit": false, + "outDir": "server-dist", + "sourceMap": false, + "declaration": false, + "module": "NodeNext", + "moduleResolution": "NodeNext", + "target": "ES2022" + }, + "include": [ + "src/server/**/*.ts", + "src/server/**/*.tsx" + ] +} + +