FROM ubuntu:16.04 LABEL maintainer="Jan Prach " # Copy and run the install scripts. COPY install/*.sh /install/ RUN /install/install_bootstrap_deb_packages.sh RUN add-apt-repository -y ppa:openjdk-r/ppa && \ add-apt-repository -y ppa:george-edison55/cmake-3.x RUN /install/install_deb_packages.sh RUN /install/install_bazel.sh # Set up the master bazelrc configuration file. COPY install/.bazelrc /etc/bazel.bazelrc # Install extra libraries for android sdk. RUN apt-get update && apt-get install -y \ python-numpy \ && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* # Android SDK and NDK root directory workaround. For details see # https://github.com/bazelbuild/bazel/issues/714#issuecomment-166735874 ENV ANDROID_DEV_HOME /android RUN mkdir -p ${ANDROID_DEV_HOME} # Install Android SDK. ENV ANDROID_SDK_FILENAME tools_r25.2.5-linux.zip ENV ANDROID_SDK_URL https://dl.google.com/android/repository/${ANDROID_SDK_FILENAME} ENV ANDROID_API_LEVEL 23 # Build Tools Version liable to change. ENV ANDROID_BUILD_TOOLS_VERSION 26.0.1 ENV ANDROID_SDK_HOME ${ANDROID_DEV_HOME}/sdk ENV PATH ${PATH}:${ANDROID_SDK_HOME}/tools:${ANDROID_SDK_HOME}/platform-tools RUN cd ${ANDROID_DEV_HOME} && \ wget -q ${ANDROID_SDK_URL} && \ unzip ${ANDROID_SDK_FILENAME} -d android-sdk-linux && \ rm ${ANDROID_SDK_FILENAME} && \ bash -c "ln -s ${ANDROID_DEV_HOME}/android-sdk-* ${ANDROID_SDK_HOME}" && \ echo y | android update sdk --no-ui -a --filter tools,platform-tools,android-${ANDROID_API_LEVEL},build-tools-${ANDROID_BUILD_TOOLS_VERSION} # Install Android NDK. ENV ANDROID_NDK_FILENAME android-ndk-r14b-linux-x86_64.zip ENV ANDROID_NDK_URL https://dl.google.com/android/repository/${ANDROID_NDK_FILENAME} ENV ANDROID_NDK_HOME ${ANDROID_DEV_HOME}/ndk ENV PATH ${PATH}:${ANDROID_NDK_HOME} # Workaround for b/117156972: inject missing #include into NDK versions of # futex.h. RUN cd ${ANDROID_DEV_HOME} && \ wget -q ${ANDROID_NDK_URL} && \ unzip ${ANDROID_NDK_FILENAME} -d ${ANDROID_DEV_HOME} && \ sed -i 15i"#include " ${ANDROID_DEV_HOME}/android-ndk-r14b/platforms/android-14/arch-arm/usr/include/linux/futex.h && \ sed -i 15i"#include " ${ANDROID_DEV_HOME}/android-ndk-r14b/platforms/android-14/arch-mips/usr/include/linux/futex.h && \ sed -i 15i"#include " ${ANDROID_DEV_HOME}/android-ndk-r14b/platforms/android-14/arch-x86/usr/include/linux/futex.h && \ rm ${ANDROID_NDK_FILENAME} && \ bash -c "ln -s ${ANDROID_DEV_HOME}/android-ndk-* ${ANDROID_NDK_HOME}" # Make android ndk executable to all users. RUN chmod -R go=u ${ANDROID_DEV_HOME}