Spaces:
Running
Running
| # Standalone build: Space repo root = this folder (lovable-telegram-bot). | |
| # Matches HF log pattern: COPY package*.json, public/, extension/, *.js | |
| FROM mcr.microsoft.com/playwright:v1.45.1-jammy | |
| WORKDIR /app | |
| USER root | |
| COPY package.json package-lock.json* ./ | |
| RUN node -e "const fs=require('fs');const p=require('./package.json');p.dependencies=p.dependencies||{};p.dependencies.playwright='1.45.1';fs.writeFileSync('package.json',JSON.stringify(p,null,2));" | |
| ENV PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD=1 | |
| ENV PLAYWRIGHT_BROWSERS_PATH=/ms-playwright | |
| ENV NODE_ENV=production | |
| RUN npm install --omit=dev --no-audit --no-fund | |
| COPY public/ ./public/ | |
| COPY extension/ ./extension/ | |
| COPY *.js ./ | |
| COPY start.sh ./ | |
| COPY .env.example ./ | |
| RUN apt-get update \ | |
| && apt-get install -y --no-install-recommends xvfb \ | |
| && rm -rf /var/lib/apt/lists/* \ | |
| && mkdir -p /tmp/.X11-unix \ | |
| && chmod 1777 /tmp /tmp/.X11-unix \ | |
| && chmod +x /app/start.sh \ | |
| && npx playwright install chrome \ | |
| && chown -R pwuser:pwuser /app | |
| USER pwuser | |
| ENV QT_X11_NO_MITSHM=1 | |
| ENV _X11_NO_MITSHM=1 | |
| ENV MITSHM=0 | |
| ENV DISPLAY=:99 | |
| ENV PORT=7860 | |
| # Force Node to flush logs so HF Runtime logs are not empty | |
| ENV NODE_OPTIONS=--trace-uncaught | |
| EXPOSE 7860 | |
| # Critical: start.sh runs Xvfb in background then exec node (binds 0.0.0.0:7860). | |
| # Never use `xvfb-run ... node` as CMD — HF health check timed out 30m with empty logs. | |
| CMD ["bash", "/app/start.sh"] | |