Skip to content

Instantly share code, notes, and snippets.

@deepakshrma
Last active December 8, 2019 21:00
Show Gist options
  • Save deepakshrma/6e269ebd697b3d33646d7f278ccf03c1 to your computer and use it in GitHub Desktop.
Save deepakshrma/6e269ebd697b3d33646d7f278ccf03c1 to your computer and use it in GitHub Desktop.
Dockerfile
FROM gradle:latest
# FROM openjdk:8-jre-alpine
USER root
# RUN apk --no-cache add curl
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip" \
ANDROID_HOME="/usr/local/android-sdk" \
ANDROID_VERSION=28 \
ANDROID_BUILD_TOOLS_VERSION=29.0.2
# Download Android SDK
RUN mkdir "$ANDROID_HOME" .android \
&& cd "$ANDROID_HOME" \
&& curl -o sdk.zip $SDK_URL \
&& unzip sdk.zip \
&& rm sdk.zip \
&& mkdir "$ANDROID_HOME/licenses" || true \
&& echo "24333f8a63b6825ea9c5514f83c2829b004d1fee" > "$ANDROID_HOME/licenses/android-sdk-license"
# && yes | $ANDROID_HOME/tools/bin/sdkmanager --licenses
# Install Android Build Tool and Libraries
# RUN touch $ANDROID_HOME/.android/repositories.cfg
RUN echo y | $ANDROID_HOME/tools/bin/sdkmanager --update
RUN echo y | $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" \
"platforms;android-${ANDROID_VERSION}" \
"platform-tools"
# RUN echo y | $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86"
# RUN echo no | $ANDROID_HOME/tools/bin/avdmanager create avd -n emulator -k "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86"
# RUN curl --silent https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator --output ~/android-wait-for-emulator
# RUN chmod +x ~/android-wait-for-emulator
# Install Build Essentials
# RUN apt-get update && apt-get install build-essential -y && apt-get install file -y && apt-get install apt-utils -y
# RUN echo y | $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86_64"
# RUN echo no | $ANDROID_HOME/tools/bin/avdmanager create avd -n emulator -k "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86_64"
# RUN dpkg --add-architecture i386
RUN apt-get update
RUN echo Y | apt-get install qemu-kvm libvirt-bin ubuntu-vm-builder bridge-utils ia32-libs-multiarch file git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
RUN echo y | $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86"
RUN echo no | $ANDROID_HOME/tools/bin/avdmanager create avd -n testdevice -k "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86" -g "google_apis_playstore"
RUN $ANDROID_HOME/tools/bin/avdmanager list avd
# RUN $ANDROID_HOME/emulator-headless -avd testdevice -no-window -no-audio &
## Commands
docker build -t android-build:android-gradle .
docker run --rm -v "$PWD":/Users/xdeepakv/LearnAndShare/learn-kotlin/basic_app -w /Users/xdeepakv/LearnAndShare/learn-kotlin/basic_app/app android-build:android-gradle gradle runInstTest
curl --silent https://raw.githubusercontent.com/travis-ci/travis-cookbooks/0f497eb71291b52a703143c5cd63a217c8766dc9/community-cookbooks/android-sdk/files/default/android-wait-for-emulator --output ~/android-wait-for-emulator
chmod +x ~/android-wait-for-emulator
export ANDROID_BUILD_TOOLS_VERSION=28.0.3
export ANDROID_VERSION=28
export LD_LIBRARY_PATH=$ANDROID_HOME/tools/lib:$LD_LIBRARY_PATH
export PATH=$ANDROID_HOME/emulator:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin/:$PATH
SDK_TYPE="system-images;android-27;google_apis_playstore;x86"
# echo y | sdkmanager $SDK_TYPE
# echo no | avdmanager create avd -n testdevice -k $SDK_TYPE -g "google_apis_playstore"
avdmanager list avd
# mv $ANDROID_HOME/emulator/qemu/linux-x86_64/qemu-system-x86_64
# avdmanager delete avd -n testdevice
# emulator -avd testdevice -no-window -no-audio & # run headless "test" AVD
# echo y | $ANDROID_HOME/tools/bin/sdkmanager "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86_64"
kvm-ok
echo no | $ANDROID_HOME/tools/bin/avdmanager create avd -n testdevice1 -k "system-images;android-${ANDROID_VERSION};google_apis_playstore;x86_64" -g "google_apis_playstore"
emulator -avd testdevice1 -no-window -no-audio &
~/android-wait-for-emulator
adb shell input keyevent 82 # some dummy input
gradle -PdisablePreDex clean
# avdmanager delete avd -n testdevice
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment