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