|
|
|
@ -1,11 +1,29 @@ |
|
|
|
|
FROM ubuntu:19.10 |
|
|
|
|
FROM ubuntu:20.04 |
|
|
|
|
|
|
|
|
|
# Arguments that can be overridden in 'docker build' command: |
|
|
|
|
# Versions of Android SDK, NDK and CMake |
|
|
|
|
# Versions of Android SDK and NDK. The CMake is installed via NDK. |
|
|
|
|
ARG VERSION_SDK=6200805 |
|
|
|
|
ARG VERSION_NDK=21.0.6113669 |
|
|
|
|
ARG VERSION_CMAKE=3.10.2.4988404 |
|
|
|
|
|
|
|
|
|
# Packages to install via apt-get |
|
|
|
|
ARG VERSION_PYTHON3=3.8.2-0ubuntu2 |
|
|
|
|
ARG VERSION_PYTHON3_PIP=20.0.2-5ubuntu1 |
|
|
|
|
ARG VERSION_PYTHON3_SETUPTOOLS=45.2.0-1 |
|
|
|
|
ARG VERSION_PYTHON3_WHEEL=0.34.2-1 |
|
|
|
|
ARG VERSION_NINJA_BUILD=1.10.0-1build1 |
|
|
|
|
ARG VERSION_BUILD_ESSENTIAL=12.8ubuntu1 |
|
|
|
|
ARG VERSION_OPENJDK_8_JDK_HEADLESS=8u252-b09-1ubuntu1 |
|
|
|
|
ARG VERSION_CURL=7.68.0-1ubuntu2 |
|
|
|
|
ARG VERSION_UNZIP=6.0-25ubuntu1 |
|
|
|
|
ARG VERSION_BASH=5.0-6ubuntu1 |
|
|
|
|
ARG VERSION_NASM=2.14.02-1 |
|
|
|
|
ARG VERSION_PKG_CONFIG=0.29.1-0ubuntu4 |
|
|
|
|
ARG VERSION_MAKE=4.2.1-1.2 |
|
|
|
|
|
|
|
|
|
# Package to install via pip3 |
|
|
|
|
ARG VERSION_MESON=0.53.2 |
|
|
|
|
|
|
|
|
|
# The HOME variable isn't available for ENV directive (during building an image). |
|
|
|
|
# So we define one manually. For alpine and ubuntu it should be '/root' |
|
|
|
|
ARG HOME_TWIN=/root |
|
|
|
@ -15,18 +33,25 @@ ENV ANDROID_SDK_HOME=${HOME_TWIN}/android-sdk |
|
|
|
|
ENV ANDROID_NDK_HOME=${ANDROID_SDK_HOME}/ndk/${VERSION_NDK} |
|
|
|
|
|
|
|
|
|
# Installing basic software |
|
|
|
|
RUN apt-get update && apt-get install -y \ |
|
|
|
|
python3 python3-pip python3-setuptools python3-wheel ninja-build \ |
|
|
|
|
openjdk-8-jdk-headless \ |
|
|
|
|
curl \ |
|
|
|
|
unzip \ |
|
|
|
|
bash \ |
|
|
|
|
nasm \ |
|
|
|
|
pkg-config \ |
|
|
|
|
make |
|
|
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \ |
|
|
|
|
python3=$VERSION_PYTHON3 \ |
|
|
|
|
python3-pip=$VERSION_PYTHON3_PIP \ |
|
|
|
|
python3-setuptools=$VERSION_PYTHON3_SETUPTOOLS \ |
|
|
|
|
python3-wheel=$VERSION_PYTHON3_WHEEL \ |
|
|
|
|
ninja-build=$VERSION_NINJA_BUILD \ |
|
|
|
|
build-essential=$VERSION_BUILD_ESSENTIAL \ |
|
|
|
|
openjdk-8-jdk-headless=$VERSION_OPENJDK_8_JDK_HEADLESS \ |
|
|
|
|
curl=$VERSION_CURL \ |
|
|
|
|
unzip=$VERSION_UNZIP \ |
|
|
|
|
bash=$VERSION_BASH \ |
|
|
|
|
nasm=$VERSION_NASM \ |
|
|
|
|
pkg-config=$VERSION_PKG_CONFIG \ |
|
|
|
|
make=$VERSION_MAKE \ |
|
|
|
|
&& apt-get clean \ |
|
|
|
|
&& rm -rf /var/lib/apt/lists/* |
|
|
|
|
|
|
|
|
|
# Meson has to be installed in a different way |
|
|
|
|
RUN pip3 install meson==0.53.2 |
|
|
|
|
RUN pip3 install meson==$VERSION_MESON |
|
|
|
|
|
|
|
|
|
# Download the Android SDK |
|
|
|
|
RUN curl https://dl.google.com/android/repository/commandlinetools-linux-${VERSION_SDK}_latest.zip --output ${HOME_TWIN}/android-sdk.zip |
|
|
|
@ -36,7 +61,7 @@ RUN mkdir -p ${HOME_TWIN}/android-sdk && \ |
|
|
|
|
rm ${HOME_TWIN}/android-sdk.zip |
|
|
|
|
|
|
|
|
|
# Installing components through the Android SDK |
|
|
|
|
RUN installAndroidComponent() { yes | ${ANDROID_SDK_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_HOME} $1 > /dev/null; } && \ |
|
|
|
|
RUN installAndroidComponent() { yes | ${ANDROID_SDK_HOME}/tools/bin/sdkmanager --sdk_root=${ANDROID_SDK_HOME} "$1" > /dev/null; } && \ |
|
|
|
|
installAndroidComponent "ndk;${VERSION_NDK}" && \ |
|
|
|
|
installAndroidComponent "cmake;${VERSION_CMAKE}" |
|
|
|
|
|
|
|
|
|