1+ FROM mcr.microsoft.com/devcontainers/base:ubuntu-24.04
2+ # RUN useradd -u 3333 -G sudo -m -d /home/gitpod -s /bin/bash gitpod && echo "gitpod:gitpod" | chpasswd \
3+ # && sed -i.bkp -e '/Defaults\tuse_pty/d' -e 's/%sudo\s\+ALL=(ALL\(:ALL\)\?)\s\+ALL/%sudo ALL=NOPASSWD:ALL/g' /etc/sudoers
4+ USER vscode
5+ ENV HOME=/home/vscode
6+ # SHELL ["/bin/bash", "-c"]
7+
8+ # # use this Dockerfile to install additional tools you might need, e.g.
9+ # # RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \
10+ # # && apt-get -y install --no-install-recommends <your-package-list-here>
11+
12+ ENV ANDROID_HOME=$HOME/android-sdk
13+ ENV PATH="$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/cmdline-tools/bootstrap/bin:$ANDROID_HOME/platform-tools:$PATH"
14+ ENV PATH="$HOME/.local/bin:$HOME/.bun/bin:$PATH"
15+
16+ # Install Android SDK
17+ RUN sudo apt-get update && export DEBIAN_FRONTEND=noninteractive \
18+ && sudo apt-get -y install --no-install-recommends \
19+ curl \
20+ unzip \
21+ openjdk-21-jdk
22+
23+ RUN version="9477386" && mkdir -p $ANDROID_HOME/cmdline-tools/bootstrap \
24+ && curl -L https://dl.google.com/android/repository/commandlinetools-linux-${version}_latest.zip -o /tmp/cmdline-tools.zip \
25+ && unzip -q /tmp/cmdline-tools.zip -d /tmp/unzip && mv /tmp/unzip/*/* $ANDROID_HOME/cmdline-tools/bootstrap
26+
27+ RUN yes | sdkmanager --licenses \
28+ && sdkmanager "cmdline-tools;latest" \
29+ && sdkmanager \
30+ "platform-tools" \
31+ "build-tools;35.0.0" \
32+ "ndk;28.1.13356709" \
33+ "platforms;android-35" \
34+ "emulator" \
35+ "add-ons;addon-google_apis-google-24" \
36+ "cmake;4.0.2" \
37+ "system-images;android-35;google_apis;x86_64"
38+
39+ # Cold boot the emulator to start it quickly later
40+ RUN avdmanager create avd --name headless_avd --package "system-images;android-35;google_apis;x86_64" --device "pixel" && avdmanager list avd
41+ # RUN if test -e /dev/kvm; then sudo chmod 777 /dev/kvm; (until adb shell getprop sys.boot_completed | grep -q 1; do sleep 2; done && sleep 10 && adb emu kill) & emulator -avd headless_avd -no-window -no-audio -no-boot-anim -gpu swiftshader_indirect -accel off -no-metrics; fi
42+
43+
44+ USER root
45+ # Install necessary kernel tools
46+ RUN export DEBIAN_FRONTEND=noninteractive \
47+ && apt-get -y install --no-install-recommends \
48+ kmod \
49+ cpu-checker \
50+ qemu-system-x86 qemu-utils qemu-kvm \
51+ file
52+
53+ # Install scrcpy
54+ RUN curl -L https://github.com/Genymobile/scrcpy/releases/download/v3.2/scrcpy-linux-x86_64-v3.2.tar.gz -o /tmp/scrcpy.tar.gz \
55+ && tar -xf /tmp/scrcpy.tar.gz -C /tmp \
56+ && mv /tmp/scrcpy-linux*/scrcpy /usr/local/bin/scrcpy \
57+ && chmod +x /usr/local/bin/scrcpy
58+
59+
60+ USER vscode
61+ # Install uv & mysc
62+ RUN curl -LsSf https://astral.sh/uv/install.sh | sh \
63+ && curl -fsSL https://fnm.vercel.app/install | bash
64+ # && sudo apt-get install -y portaudio19-dev \
65+ # && uv tool install mysc[web]
66+
67+ # Install ws-scrcpy
68+ SHELL ["/bin/bash" , "-lic" ]
69+ RUN fnm install --lts \
70+ && cd $HOME && git clone https://github.com/NetrisTV/ws-scrcpy.git && cd ws-scrcpy \
71+ && uv run npm install && npm run dist:prod
72+ # && uv run bun install && uv run bun run dist:prod
0 commit comments