Last active
May 17, 2024 02:03
-
-
Save rmtsrc/cb6387af095a0f5b29cfce576695a68a to your computer and use it in GitHub Desktop.
Docker Android build container
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM openjdk:8-jdk-slim-stretch | |
SHELL ["/bin/bash", "-c"] | |
# Install build tools & newer version of cmake from Debian backports | |
RUN echo "deb http://deb.debian.org/debian stretch-backports main contrib non-free" >> /etc/apt/sources.list.d/backports.list \ | |
&& apt-get update \ | |
&& apt-get install -y \ | |
build-essential \ | |
bzip2 \ | |
ca-certificates \ | |
curl \ | |
git \ | |
gnupg \ | |
gzip \ | |
locales \ | |
make \ | |
net-tools \ | |
netcat \ | |
ninja-build \ | |
openssl \ | |
parallel \ | |
ruby-full \ | |
tar \ | |
unzip \ | |
wget \ | |
zip \ | |
&& apt-get -t stretch-backports install -y \ | |
cmake \ | |
&& curl --silent --location https://deb.nodesource.com/setup_10.x | bash - \ | |
&& curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - \ | |
&& echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list \ | |
&& apt-get update \ | |
&& apt-get install -y \ | |
yarn \ | |
&& rm -rf /var/lib/apt/lists/* | |
# Install node | |
ARG nvm_version=0.34.0 | |
ARG node_version=8.12.0 | |
RUN curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v${nvm_version}/install.sh | bash \ | |
&& source /root/.bashrc \ | |
&& nvm install ${node_version} \ | |
&& nvm alias default ${node_version} \ | |
&& yarn global add react-native-cli | |
# Default Android versions | |
ARG sdk_tools_version=sdk-tools-linux-4333796.zip | |
ARG android_build_tools_version=28.0.1 | |
ARG android_version=27 | |
ARG android_ndk_version=16b | |
ARG android_home=/opt/android/sdk | |
# Set Android environmental variables | |
ENV ANDROID_HOME ${android_home} | |
ENV ADB_INSTALL_TIMEOUT 120 | |
ENV PATH=${ANDROID_HOME}/emulator:${ANDROID_HOME}/tools:${ANDROID_HOME}/tools/bin:${ANDROID_HOME}/platform-tools:${PATH} | |
ENV ANDROID_NDK_HOME ${android_home}/ndk-bundle | |
# Download and install Android SDK, NDK, platform and build tools | |
RUN mkdir -p ${android_home} \ | |
&& curl --silent --show-error --location --fail --retry 3 --output /tmp/${sdk_tools_version} https://dl.google.com/android/repository/${sdk_tools_version} \ | |
&& unzip -q /tmp/${sdk_tools_version} -d ${android_home} \ | |
&& rm /tmp/${sdk_tools_version}\ | |
&& mkdir ~/.android && echo '### User Sources for Android SDK Manager' > ~/.android/repositories.cfg \ | |
&& yes | sdkmanager --licenses && yes | sdkmanager --update \ | |
&& sdkmanager \ | |
"tools" \ | |
"build-tools;${android_build_tools_version}" \ | |
"platforms;android-${android_version}" \ | |
&& curl --silent --show-error --location --fail --retry 3 --output /tmp/${android_ndk_version}.zip https://dl.google.com/android/repository/android-ndk-r${android_ndk_version}-linux-x86_64.zip \ | |
&& unzip -q /tmp/${android_ndk_version}.zip -d ${android_home} \ | |
&& mv ${android_home}/android-ndk-r${android_ndk_version} ${android_home}/ndk-bundle \ | |
&& rm /tmp/${android_ndk_version}.zip | |
# Provide volume to store app | |
VOLUME "/app" | |
WORKDIR /app |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment