dynamicbible/DynamicBibleIonic/android.Dockerfile

83 lines
3.0 KiB
Docker

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"]