2017-02-24 18:48:10 +00:00
|
|
|
FROM library/ubuntu:16.04
|
|
|
|
|
|
|
|
# set default build arguments
|
2017-12-22 01:19:52 +00:00
|
|
|
ARG ANDROID_TOOLS_VERSION=25.2.5
|
2018-03-29 18:29:09 +00:00
|
|
|
ARG BUCK_VERSION=v2018.02.16.01
|
2017-02-24 18:48:10 +00:00
|
|
|
ARG NDK_VERSION=10e
|
2018-03-29 18:29:09 +00:00
|
|
|
ARG NODE_VERSION=8.10.0
|
|
|
|
ARG WATCHMAN_VERSION=4.9.0
|
2017-02-24 18:48:10 +00:00
|
|
|
|
|
|
|
# set default environment variables
|
|
|
|
ENV ADB_INSTALL_TIMEOUT=10
|
|
|
|
ENV PATH=${PATH}:/opt/buck/bin/
|
|
|
|
ENV ANDROID_HOME=/opt/android
|
|
|
|
ENV ANDROID_SDK_HOME=${ANDROID_HOME}
|
2017-12-22 01:19:52 +00:00
|
|
|
ENV PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools
|
2017-02-24 18:48:10 +00:00
|
|
|
ENV ANDROID_NDK=/opt/ndk/android-ndk-r$NDK_VERSION
|
|
|
|
ENV PATH=${PATH}:${ANDROID_NDK}
|
|
|
|
|
|
|
|
# install system dependencies
|
|
|
|
RUN apt-get update && apt-get install ant autoconf automake curl g++ gcc git libqt5widgets5 lib32z1 lib32stdc++6 make maven npm openjdk-8* python-dev python3-dev qml-module-qtquick-controls qtdeclarative5-dev unzip -y
|
|
|
|
|
|
|
|
# configure npm
|
|
|
|
RUN npm config set spin=false
|
|
|
|
RUN npm config set progress=false
|
|
|
|
|
|
|
|
# install node
|
|
|
|
RUN npm install n -g
|
|
|
|
RUN n $NODE_VERSION
|
|
|
|
|
|
|
|
# download buck
|
2017-12-22 01:19:52 +00:00
|
|
|
RUN git clone https://github.com/facebook/buck.git /opt/buck --branch $BUCK_VERSION --depth=1
|
2017-02-24 18:48:10 +00:00
|
|
|
WORKDIR /opt/buck
|
|
|
|
|
|
|
|
# build buck
|
|
|
|
RUN ant
|
|
|
|
|
2017-12-22 01:19:52 +00:00
|
|
|
# Full reference at https://dl.google.com/android/repository/repository2-1.xml
|
2017-02-24 18:48:10 +00:00
|
|
|
# download and unpack android
|
|
|
|
RUN mkdir /opt/android
|
|
|
|
WORKDIR /opt/android
|
2017-12-22 01:19:52 +00:00
|
|
|
RUN curl --silent https://dl.google.com/android/repository/tools_r$ANDROID_TOOLS_VERSION-linux.zip > android.zip
|
2017-02-24 18:48:10 +00:00
|
|
|
RUN unzip android.zip
|
|
|
|
RUN rm android.zip
|
|
|
|
|
|
|
|
# download and unpack NDK
|
|
|
|
RUN mkdir /opt/ndk
|
|
|
|
WORKDIR /opt/ndk
|
|
|
|
RUN curl --silent https://dl.google.com/android/repository/android-ndk-r$NDK_VERSION-linux-x86_64.zip > ndk.zip
|
|
|
|
RUN unzip ndk.zip
|
|
|
|
|
|
|
|
# cleanup NDK
|
|
|
|
RUN rm ndk.zip
|
|
|
|
|
2017-03-30 00:54:11 +00:00
|
|
|
# Add android SDK tools
|
2017-12-22 01:19:52 +00:00
|
|
|
RUN echo "y" | sdkmanager "system-images;android-19;google_apis;armeabi-v7a"
|
|
|
|
RUN echo "y" | sdkmanager "platforms;android-23"
|
|
|
|
RUN echo "y" | sdkmanager "platforms;android-19"
|
|
|
|
RUN echo "y" | sdkmanager "build-tools;23.0.1"
|
|
|
|
RUN echo "y" | sdkmanager "add-ons;addon-google_apis-google-23"
|
|
|
|
RUN echo "y" | sdkmanager "extras;android;m2repository"
|
2017-03-30 00:54:11 +00:00
|
|
|
|
|
|
|
# Link adb executable
|
2017-02-24 18:48:10 +00:00
|
|
|
RUN ln -s /opt/android/platform-tools/adb /usr/bin/adb
|
|
|
|
|
|
|
|
# clean up unnecessary directories
|
|
|
|
RUN rm -rf /opt/android/system-images/android-19/default/x86
|