diff --git a/Dockerfile b/Dockerfile index 5777703..d84190f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -42,6 +42,7 @@ COPY --from=base /app/src/server/index.ts ./src/server/index.ts COPY --from=base /app/src/server/routes ./src/server/routes COPY --from=base /app/src/server/rpc ./src/server/rpc COPY --from=base /app/src/server/lib ./src/server/lib +COPY --from=base /app/tsconfig.server.json ./tsconfig.server.json # Create non-root user for security RUN addgroup -g 1001 -S nodejs @@ -58,5 +59,6 @@ EXPOSE 3000 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 +# 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"] diff --git a/tsconfig.server.json b/tsconfig.server.json new file mode 100644 index 0000000..6aea090 --- /dev/null +++ b/tsconfig.server.json @@ -0,0 +1,19 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "NodeNext", + "moduleResolution": "NodeNext", + "noEmit": true, + "allowImportingTsExtensions": true, + "types": ["node"], + "paths": { + "@/*": ["./src/*"] + } + }, + "include": [ + "src/server/**/*.ts", + "src/server/**/*.tsx" + ] +} + +