Skip to content

Instantly share code, notes, and snippets.

@mnixry
Created May 28, 2024 19:08
Show Gist options
  • Save mnixry/d0692187689bd5f265004450484880b8 to your computer and use it in GitHub Desktop.
Save mnixry/d0692187689bd5f265004450484880b8 to your computer and use it in GitHub Desktop.
Running Scrcpy in Docker with VNC support.
# stage for building scrcpy
FROM ubuntu:latest AS builder
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl gcc git pkg-config meson ninja-build libsdl2-dev ca-certificates \
libavcodec-dev libavdevice-dev libavformat-dev libavutil-dev \
libswresample-dev libusb-1.0-0-dev libswscale-dev libvncserver-dev && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
RUN useradd -ms /bin/bash builder && \
git clone https://github.com/DavidVentura/scrcpy.git /src --branch dev --depth 1 && \
curl -fL https://github.com/Genymobile/scrcpy/releases/download/v2.0/scrcpy-server-v2.0 > /src/scrcpy-server.jar && \
chown -R builder:builder /src
WORKDIR /src
USER builder
RUN meson setup x --buildtype=release --strip -Db_lto=true -Dprebuilt_server=/src/scrcpy-server.jar && \
ninja -Cx
USER root
RUN ninja -Cx install
# stage for running scrcpy
FROM ubuntu:latest
RUN apt-get update && \
apt-get install -y --no-install-recommends adb ffmpeg libsdl2-2.0-0 adb libusb-1.0-0 libvncserver1 && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
COPY --from=builder /usr/local/bin/scrcpy /usr/local/bin/scrcpy
COPY --from=builder /usr/local/share/scrcpy/scrcpy-server /usr/local/share/scrcpy/scrcpy-server
ENTRYPOINT ["/usr/local/bin/scrcpy"]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment