1FROM ubuntu:24.10
2
3RUN dpkg --add-architecture i386
4RUN apt-get update
5RUN apt-get install -y --no-install-recommends libc6-dev gcc
6RUN apt-get install -y --no-install-recommends \
7  file \
8  wget \
9  ca-certificates \
10  python3 \
11  unzip \
12  expect \
13  openjdk-8-jre \
14  libstdc++6:i386 \
15  libpulse0
16
17WORKDIR /android/
18COPY android* /android/
19
20ENV ANDROID_ARCH=i686
21ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
22
23RUN /android/android-install-ndk.sh
24RUN /android/android-install-sdk.sh $ANDROID_ARCH
25RUN mv /root/.android /tmp
26RUN chmod 777 -R /tmp/.android
27RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
28
29ENV PATH=$PATH:/rust/bin \
30    CARGO_TARGET_I686_LINUX_ANDROID_LINKER=i686-linux-android28-clang \
31    CARGO_TARGET_I686_LINUX_ANDROID_RUNNER=/tmp/runtest \
32    CC_i686_linux_android=i686-linux-android28-clang \
33    AR_i686_linux_android=llvm-ar \
34    HOME=/tmp
35
36ADD runtest-android.rs /tmp/runtest.rs
37ENTRYPOINT [ \
38  "bash", \
39  "-c", \
40  # set SHELL so android can detect a 64bits system, see
41  # http://stackoverflow.com/a/41789144
42  "SHELL=/bin/dash /android/sdk/emulator/emulator @i686 -no-window -no-accel & \
43   rustc /tmp/runtest.rs -o /tmp/runtest && \
44   exec \"$@\"", \
45  "--" \
46]
47