FROM ubuntu:16.04 ENV DEBIAN_FRONTEND=noninteractive \ ANDROID_HOME=/opt/android-sdk-linux \ NODE_VERSION=10.13.0 \ NPM_VERSION=6.5.0 \ IONIC_VERSION=4.6.0 \ CORDOVA_VERSION=8.0.0 \ GRADLE_VERSION=4.10.2 \ SCMNAME="Jason Wall" \ SCMEMAIL="jason@walljm.com" # Install basics RUN apt-get update RUN apt-get install -y git wget curl unzip build-essential ruby ruby-dev ruby-ffi gcc make RUN curl --retry 3 -SLO "http://nodejs.org/dist/v$NODE_VERSION/node-v$NODE_VERSION-linux-x64.tar.gz" RUN tar -xzf "node-v$NODE_VERSION-linux-x64.tar.gz" -C /usr/local --strip-components=1 RUN rm "node-v$NODE_VERSION-linux-x64.tar.gz" RUN npm install -g npm@"$NPM_VERSION" RUN npm install -g cordova@"$CORDOVA_VERSION" ionic@"$IONIC_VERSION" RUN npm cache clear --force RUN gem install sass RUN git config --global user.email "${SCMEMAIL}" && \ git config --global user.name "${SCMNAME}" RUN apt-get install software-properties-common -y RUN add-apt-repository ppa:mercurial-ppa/releases RUN apt-get update RUN apt-get install mercurial -y # install python-software-properties (so you can do add-apt-repository) RUN apt-get update && apt-get install -y -q python-software-properties software-properties-common && \ add-apt-repository ppa:webupd8team/java -y && \ echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && \ apt-get update && apt-get -y install oracle-java8-installer #ANDROID STUFF RUN echo ANDROID_HOME="${ANDROID_HOME}" >> /etc/environment && \ dpkg --add-architecture i386 && \ apt-get update && \ apt-get install -y --force-yes expect ant wget zipalign libc6-i386 lib32stdc++6 lib32gcc1 lib32ncurses5 lib32z1 qemu-kvm kmod && \ apt-get clean && \ apt-get autoclean && \ rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Install Android SDK RUN cd /opt && \ wget --output-document=android-sdk.tgz --quiet http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz && \ tar xzf android-sdk.tgz && \ rm -f android-sdk.tgz && \ chown -R root. /opt # Install Gradle RUN wget https://services.gradle.org/distributions/gradle-"$GRADLE_VERSION"-bin.zip && \ mkdir /opt/gradle && \ unzip -d /opt/gradle gradle-"$GRADLE_VERSION"-bin.zip && \ rm -rf gradle-"$GRADLE_VERSION"-bin.zip # Setup environment ENV PATH ${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:/opt/tools:/opt/gradle/gradle-"$GRADLE_VERSION"/bin # Install sdk elements COPY docker /opt/tools RUN ["/opt/tools/android-accept-licenses.sh", "android update sdk --all --no-ui --filter platform-tools,tools,build-tools-26.0.2,android-27,android-26,build-tools-25.0.0,android-25,extra-android-support,extra-android-m2repository,extra-google-m2repository"] RUN unzip ${ANDROID_HOME}/temp/*.zip -d ${ANDROID_HOME} # Test First Build so that it will be faster later WORKDIR /db RUN hg clone https://walljm@bitbucket.org/walljm/dynamicbible WORKDIR /db/dynamicbible/DynamicBibleIonic RUN hg update main RUN ls -laF RUN npm install RUN ionic cordova platform add android COPY docker/build.sh /build.sh EXPOSE 8100 35729 CMD ["build.sh"]