Created
May 27, 2018 11:55
-
-
Save valera-rozuvan/113cef735639ddc2ded7e34a382bec54 to your computer and use it in GitHub Desktop.
Dockerfile for Cordova + Android SDK
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 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