Skip to content

Instantly share code, notes, and snippets.

@singhangadin
Last active April 25, 2020 23:47
Show Gist options
  • Save singhangadin/f27dd055fd27906028d42cf8e7ca0ce7 to your computer and use it in GitHub Desktop.
Save singhangadin/f27dd055fd27906028d42cf8e7ca0ce7 to your computer and use it in GitHub Desktop.
Docker file for Android Tests
FROM openjdk:8-jdk
MAINTAINER Angad Singh <angads25@gmail.com>
CMD ["gradle"]
ENV GRADLE_HOME /opt/gradle
ENV GRADLE_VERSION 5.6.4
ARG GRADLE_DOWNLOAD_SHA256=abc10bcedb58806e8654210f96031db541bcd2d6fc3161e81cb0572d6a15e821
RUN set -o errexit -o nounset \
&& echo "Downloading Gradle" \
&& wget --no-verbose --output-document=gradle.zip "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-all.zip" \
\
&& echo "Checking download hash" \
&& echo "${GRADLE_DOWNLOAD_SHA256} *gradle.zip" | sha256sum --check - \
\
&& echo "Installing Gradle" \
&& unzip gradle.zip \
&& rm gradle.zip \
&& mv "gradle-${GRADLE_VERSION}" "${GRADLE_HOME}/" \
&& ln --symbolic "${GRADLE_HOME}/bin/gradle" /usr/bin/gradle \
\
&& echo "Adding gradle user and group" \
&& groupadd --system --gid 1000 gradle \
&& useradd --system --gid gradle --uid 1000 --shell /bin/bash --create-home gradle \
&& mkdir /home/gradle/.gradle \
&& chown --recursive gradle:gradle /home/gradle \
\
&& echo "Symlinking root Gradle cache to gradle Gradle cache" \
&& ln -s /home/gradle/.gradle /root/.gradle
RUN echo -e "org.gradle.daemon=true\n" >> ~/.gradle/gradle.properties
RUN echo -e "org.gradle.caching=true\n" >> ~/.gradle/gradle.properties
RUN echo -e "org.gradle.parallel=true\n" >> ~/.gradle/gradle.properties
RUN echo -e "org.gradle.configureondemand=true\n" >> ~/.gradle/gradle.properties
RUN echo -e "org.gradle.jvmargs=-Xmx1536m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8\n" >> ~/.gradle/gradle.properties
RUN set -o errexit -o nounset \
&& echo "Testing Gradle installation" \
&& gradle --version
ENV ANDROID_COMPILE_SDK "29"
ENV AVD_IMAGE_VERSION "19"
ENV ANDROID_BUILD_TOOLS "29.0.3"
ENV ANDROID_SDK_TOOLS "6200805"
RUN apt-get --quiet update --yes
RUN apt-get --quiet install --yes wget tar unzip lib32stdc++6 lib32z1 libqt5widgets5
RUN wget --quiet --output-document=android-sdk.zip https://dl.google.com/android/repository/commandlinetools-linux-${ANDROID_SDK_TOOLS}_latest.zip
RUN mkdir -p android-sdk-linux/cmdline-tools
RUN unzip -d android-sdk-linux/cmdline-tools android-sdk.zip
RUN mkdir "${HOME}/.android"
RUN touch "${HOME}/.android/repositories.cfg"
ENV ANDROID_HOME "/android-sdk-linux"
ENV ANDROID_AVD_HOME "${HOME}/.android/avd"
ENV ANDROID_SDK_HOME "/android-sdk-linux"
ENV PATH "$PATH:${ANDROID_HOME}/cmdline-tools/platform-tools/"
ENV PATH "$PATH:${ANDROID_HOME}/cmdline-tools/emulator/"
ENV PATH "$PATH:${ANDROID_HOME}/cmdline-tools/tools/bin"
RUN echo y | sdkmanager --licenses
RUN echo y | sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" >/dev/null
RUN echo y | sdkmanager "platform-tools" >/dev/null
RUN echo y | sdkmanager "tools" >/dev/null
RUN echo y | sdkmanager "emulator" >/dev/null
RUN echo y | sdkmanager "build-tools;${ANDROID_BUILD_TOOLS}" >/dev/null
RUN echo y | sdkmanager --sdk_root=${ANDROID_HOME} "system-images;android-${AVD_IMAGE_VERSION};google_apis;armeabi-v7a"
RUN echo y | sdkmanager --sdk_root=${ANDROID_HOME} --update
RUN echo no | avdmanager create avd -k "system-images;android-${AVD_IMAGE_VERSION};google_apis;armeabi-v7a" -n test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment