Skip to content

Instantly share code, notes, and snippets.

@rmtsrc
Last active July 13, 2019 10:34
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save rmtsrc/cb6387af095a0f5b29cfce576695a68a to your computer and use it in GitHub Desktop.
Save rmtsrc/cb6387af095a0f5b29cfce576695a68a to your computer and use it in GitHub Desktop.
Docker Android build container
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