|
| 1 | +# Android Dockerfile |
| 2 | + |
| 3 | +FROM ubuntu:14.04 |
| 4 | + |
| 5 | +MAINTAINER Mobile Builds Eng "[email protected]" |
| 6 | + |
| 7 | +# Sets language to UTF8 : this works in pretty much all cases |
| 8 | +ENV LANG en_US.UTF-8 |
| 9 | +RUN locale-gen $LANG |
| 10 | + |
| 11 | +ENV DOCKER_ANDROID_LANG en_US |
| 12 | +ENV DOCKER_ANDROID_DISPLAY_NAME mobileci-docker |
| 13 | + |
| 14 | +# Never ask for confirmations |
| 15 | +ENV DEBIAN_FRONTEND noninteractive |
| 16 | + |
| 17 | +# Update apt-get |
| 18 | +RUN rm -rf /var/lib/apt/lists/* |
| 19 | +RUN apt-get update |
| 20 | +RUN apt-get dist-upgrade -y |
| 21 | + |
| 22 | +# Installing packages |
| 23 | +RUN apt-get -y install software-properties-common |
| 24 | +RUN apt-get -y install bzip2 unzip openssh-client git curl zip wget |
| 25 | +RUN apt-get -y install lib32stdc++6 lib32z1 lib32ncurses5 lib32bz2-1.0 --no-install-recommends |
| 26 | +RUN apt-get -y install libxslt-dev libxml2-dev |
| 27 | +RUN apt-get -y install build-essential |
| 28 | + |
| 29 | +# Update apt |
| 30 | +RUN apt-add-repository ppa:openjdk-r/ppa |
| 31 | +RUN apt-get update |
| 32 | + |
| 33 | +# Install Java |
| 34 | +RUN apt-get -y install openjdk-8-jdk |
| 35 | + |
| 36 | +# Install android sdk |
| 37 | +RUN wget https://dl.google.com/android/android-sdk_r24.4.1-linux.tgz |
| 38 | +RUN tar -xvzf android-sdk_r24.4.1-linux.tgz |
| 39 | +RUN mv android-sdk-linux /usr/local/android-sdk |
| 40 | +RUN rm android-sdk_r24.4.1-linux.tgz |
| 41 | + |
| 42 | +ENV ANDROID_COMPONENTS tools,platform-tools,android-23,build-tools-23.0.2 |
| 43 | + |
| 44 | +# Install Android tools |
| 45 | +RUN ( sleep 5 && while [ 1 ]; do sleep 1; echo y; done ) | /usr/local/android-sdk/tools/android update sdk --filter "${ANDROID_COMPONENTS}" --no-ui -a |
| 46 | + |
| 47 | +# Install Android NDK |
| 48 | +RUN wget https://dl.google.com/android/ndk/android-ndk-r9d-linux-x86_64.tar.bz2 |
| 49 | +RUN tar -xvjf android-ndk-r9d-linux-x86_64.tar.bz2 |
| 50 | +RUN mv android-ndk-r9d /usr/local/android-ndk |
| 51 | +RUN rm android-ndk-r9d-linux-x86_64.tar.bz2 |
| 52 | + |
| 53 | +# Environment variables |
| 54 | +ENV ANDROID_HOME /usr/local/android-sdk |
| 55 | +ENV ANDROID_SDK_HOME $ANDROID_HOME |
| 56 | +ENV ANDROID_NDK_HOME /usr/local/android-ndk |
| 57 | +ENV PATH $PATH:$ANDROID_SDK_HOME/tools |
| 58 | +ENV PATH $PATH:$ANDROID_SDK_HOME/platform-tools |
| 59 | +ENV PATH $PATH:$ANDROID_NDK_HOME |
| 60 | + |
| 61 | +# Export JAVA_HOME variable |
| 62 | +ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64/ |
| 63 | + |
| 64 | +# Support Gradle |
| 65 | +ENV TERM dumb |
| 66 | +ENV JAVA_OPTS "-Xms512m -Xmx1024m" |
| 67 | + |
| 68 | +# Cleaning |
| 69 | +RUN apt-get clean |
| 70 | + |
| 71 | +# Fix permissions |
| 72 | +RUN chown -R root:root $ANDROID_HOME $ANDROID_SDK_HOME $ANDROID_NDK_HOME |
| 73 | +RUN chmod -R a+rx $ANDROID_HOME $ANDROID_SDK_HOME $ANDROID_NDK_HOME |
| 74 | + |
| 75 | +# Creating project directories prepared for build when running |
| 76 | +# `docker run` |
| 77 | +ENV PROJECT /project |
| 78 | +RUN mkdir $PROJECT |
| 79 | +WORKDIR $PROJECT |
| 80 | + |
| 81 | +RUN echo "sdk.dir=$ANDROID_HOME" > local.properties |
0 commit comments