Skip to content

Instantly share code, notes, and snippets.

@valera-rozuvan
Created May 27, 2018 11:55
Show Gist options
  • Save valera-rozuvan/113cef735639ddc2ded7e34a382bec54 to your computer and use it in GitHub Desktop.
Save valera-rozuvan/113cef735639ddc2ded7e34a382bec54 to your computer and use it in GitHub Desktop.
Dockerfile for Cordova + Android SDK
FROM node:boron-stretch
# Setup necessary system dependencies.
RUN echo "deb http://http.us.debian.org/debian stretch main contrib non-free" >> "/etc/apt/sources.list"
RUN echo "deb http://security.debian.org stretch/updates main contrib non-free" >> "/etc/apt/sources.list"
RUN apt-get update
RUN apt-get install -y --no-install-recommends apt-utils
RUN apt-get -y upgrade
RUN apt-get install -y --no-install-recommends java-package sudo java-common zip unzip
RUN echo "node ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
# Create project directory, setup user.
RUN mkdir -p /usr/src/app/project-mob
RUN chown node:node /usr/src/app/project-mob
USER node
WORKDIR /usr/src/app/project-mob
# Install Oracle Java.
RUN curl -LOb "oraclelicense=a" \
$( \
curl -s http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html | \
grep "otn-pub" | \
cut -d \" -f12 | \
grep jdk-8u172-linux-x64.tar.gz \
) && echo "\"Done!\""
RUN echo "Y" | make-jpkg jdk-8u172-linux-x64.tar.gz
RUN sudo dpkg -i oracle-java8-jdk_8u172_amd64.deb
RUN rm jdk-8u172-linux-x64.tar.gz
RUN rm oracle-java8-jdk_8u172_amd64.deb
ENV JAVA_HOME=/usr/lib/jvm/oracle-java8-jdk-amd64
RUN javac -version
# Install Gradle.
WORKDIR /usr/local
RUN sudo curl -L https://downloads.gradle.org/distributions/gradle-4.7-bin.zip -o gradle-4.7-bin.zip
RUN sudo unzip gradle-4.7-bin.zip
RUN sudo rm gradle-4.7-bin.zip
ENV GRADLE_HOME=/usr/local/gradle-4.7
ENV PATH=$PATH:$GRADLE_HOME/bin
RUN gradle --version
# Install Android SDK.
WORKDIR /usr/src/app/project-mob
RUN curl -L https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip -o sdk-tools-linux-3859397.zip
RUN unzip sdk-tools-linux-3859397.zip
RUN rm sdk-tools-linux-3859397.zip
RUN mkdir ~/android_sdk
RUN mv ./tools ~/android_sdk/
WORKDIR /home/node/android_sdk
RUN mkdir ~/.android
RUN touch ~/.android/repositories.cfg
RUN yes | ./tools/bin/sdkmanager --licenses
RUN ./tools/bin/sdkmanager --update
ENV ANDROID_HOME=/home/node/android_sdk
ENV PATH=$PATH:$ANDROID_HOME/tools
ENV PATH=$PATH:$ANDROID_HOME/platform-tools
RUN ./tools/bin/sdkmanager \
"extras;android;m2repository" \
"build-tools;26.0.3" \
"build-tools;27.0.3" \
"platforms;android-26" \
"platforms;android-27"
RUN adb --version
# Install Cordova
RUN sudo npm install cordova -g
RUN cordova telemetry off
RUN cordova -v
# Test out build system with HelloWorld cordova application.
WORKDIR /usr/src/app/project-mob
RUN mkdir ./hello-test
WORKDIR /usr/src/app/project-mob/hello-test
RUN cordova create hello com.example.hello HelloWorld
WORKDIR /usr/src/app/project-mob/hello-test/hello
RUN cordova platform add android
RUN cordova platform ls
RUN cordova requirements
RUN cordova build android
WORKDIR /usr/src/app/project-mob
RUN rm -r ./hello-test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment