| FROM node:lts-slim | |
| # 1. Install build tools for native addons (python3, make, g++) AND your sync tools (git, bash) | |
| # Doing this before npm install ensures node-gyp can find Python if needed during the initial install. | |
| RUN apt-get update && apt-get install -y \ | |
| python3 \ | |
| make \ | |
| g++ \ | |
| git \ | |
| bash \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # 2. Install global dependencies: omniroute, qodercli, and cline | |
| RUN npm install -g omniroute @qoder-ai/qodercli cline | |
| # 3. Rebuild native addons against the current Node version in the package root (removed '/app') | |
| RUN cd /usr/local/lib/node_modules/omniroute && npm rebuild better-sqlite3 | |
| # 4. Install zod inside omniroute's directory where Turbopack can find it (removed '/app') | |
| RUN cd /usr/local/lib/node_modules/omniroute && npm install zod --legacy-peer-deps | |
| COPY sync.sh /sync.sh | |
| RUN chmod +x /sync.sh | |
| ENV PORT=7860 | |
| EXPOSE 7860 | |
| CMD ["/bin/bash", "-c", "/sync.sh && omniroute --port 7860"] |