• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1FROM ubuntu:23.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  python3-distutils \
12  unzip \
13  expect \
14  openjdk-8-jre \
15  libstdc++6:i386 \
16  libpulse0
17
18WORKDIR /android/
19COPY android* /android/
20
21ENV ANDROID_ARCH=aarch64
22ENV PATH=$PATH:/android/linux-x86_64/bin:/android/sdk/cmdline-tools/tools:/android/sdk/platform-tools
23
24RUN sh /android/android-install-ndk.sh
25RUN sh /android/android-install-sdk.sh $ANDROID_ARCH
26RUN mv /root/.android /tmp
27RUN chmod 777 -R /tmp/.android
28RUN chmod 755 /android/sdk/cmdline-tools/tools/* /android/sdk/emulator/qemu/linux-x86_64/*
29
30ENV PATH=$PATH:/rust/bin \
31    CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER=aarch64-linux-android28-clang \
32    CARGO_TARGET_AARCH64_LINUX_ANDROID_RUNNER=/tmp/runtest \
33    CC_aarch64_linux_android=aarch64-linux-android28-clang \
34    AR_aarch64_linux_android=llvm-ar \
35    HOME=/tmp
36
37ADD runtest-android.rs /tmp/runtest.rs
38ENTRYPOINT [ \
39  "bash", \
40  "-c", \
41  # set SHELL so android can detect a 64bits system, see
42  # http://stackoverflow.com/a/41789144
43  "SHELL=/bin/dash /android/sdk/emulator/emulator @aarch64 -no-window & \
44   rustc /tmp/runtest.rs -o /tmp/runtest && \
45   exec \"$@\"", \
46  "--" \
47]
48