Files
illusory-iotam/dockerfiles/ws_scrcpy.Dockerfile
2026-03-28 13:34:53 +02:00

30 lines
1.1 KiB
Docker

FROM node:25.7.0-bookworm
# System deps: ADB for device communication, build tools for native modules (node-pty)
RUN apt-get update && \
apt-get install -y android-tools-adb python3 make g++ git && \
rm -rf /var/lib/apt/lists/*
# Clone and build ws-scrcpy
WORKDIR /build
RUN git clone --depth 1 https://github.com/NetrisTV/ws-scrcpy.git . && \
npm install && \
npm run dist:prod
# Set up runtime
WORKDIR /app
RUN cp -r /build/dist/* . && \
npm install && \
rm -rf /build
# Config: Android tracker on, no iOS, HTTP on port 8000 (Traefik handles TLS)
RUN printf 'runGoogTracker: true\nrunApplTracker: false\n\nserver:\n - secure: false\n port: 8000\n' > /app/config.yaml
# Entrypoint: start ADB, connect to device if configured, then launch
RUN printf '#!/bin/bash\nset -e\nadb start-server\nif [ -n "$ADB_DEVICE_HOST" ]; then\n echo "Connecting to ADB device at $ADB_DEVICE_HOST:${ADB_DEVICE_PORT:-5555}"\n adb connect "$ADB_DEVICE_HOST:${ADB_DEVICE_PORT:-5555}"\n sleep 2\n adb devices\nfi\nexec node index.js\n' > /entrypoint.sh && \
chmod +x /entrypoint.sh
EXPOSE 8000
ENTRYPOINT ["/entrypoint.sh"]