Spaces:
Runtime error
Runtime error
| FROM node:24-bullseye-slim | |
| ############################################################################### | |
| # 1. Install everything we need in one layer | |
| ############################################################################### | |
| RUN apt-get update && \ | |
| apt-get install -y --no-install-recommends \ | |
| # Basic tools | |
| git ca-certificates python3 python3-pip build-essential make \ | |
| wget curl unzip \ | |
| # Chrome/Playwright deps copied from the first Dockerfile | |
| fonts-liberation \ | |
| libasound2 \ | |
| libatk-bridge2.0-0 \ | |
| libatk1.0-0 \ | |
| libcups2 \ | |
| libdbus-1-3 \ | |
| libgbm-dev \ | |
| libnspr4 \ | |
| libnss3 \ | |
| libxcomposite1 \ | |
| libxdamage1 \ | |
| libxfixes3 \ | |
| libxrandr2 \ | |
| xdg-utils \ | |
| libu2f-udev \ | |
| libvulkan1 \ | |
| # Virtual display for headless Chrome | |
| xvfb \ | |
| && rm -rf /var/lib/apt/lists/* | |
| ############################################################################### | |
| # 2. Install Playwright and browsers globally (kept for future use) | |
| ############################################################################### | |
| ENV PLAYWRIGHT_BROWSERS_PATH=/home/node/.cache/ms-playwright | |
| RUN npx playwright install --with-deps chromium && \ | |
| chmod -R 777 /home/node/.cache/ms-playwright | |
| ############################################################################### | |
| # 3. Startup script (clone repo at run-time like the second Dockerfile) | |
| ############################################################################### | |
| COPY <<'start.sh' /usr/local/bin/start.sh | |
| #!/usr/bin/env bash | |
| set -e | |
| echo "Cloning $REPO …" | |
| git clone --depth 1 "$REPO" /tmp/app | |
| cd /tmp/app | |
| # (Optional) if your repo has devDependencies you need at runtime, | |
| # drop the --omit=dev flag. | |
| npm install --omit=dev | |
| # Ensure the app can write wherever it needs | |
| chmod -R 777 /tmp/app | |
| exec npm start | |
| start.sh | |
| RUN chmod +x /usr/local/bin/start.sh | |
| ############################################################################### | |
| # 4. Container metadata | |
| ############################################################################### | |
| EXPOSE 7860 | |
| CMD ["/usr/local/bin/start.sh"] |