Návod na kompilaci Ionic aplikace v dockeru:
Vytvořím si image, spouštím z adresáře, kde je Dockerfile
$ docker build -t ionic .
Vytvořím a spustím kontejner:
$ docker run -ti ionic:latest
Dále pokračuji v kontejneru
Vytvořím si složku .ssh s klíčem, přenesu privátní a veřejný klíč
$ ssh-keygen
$ cat > ~/.ssh/id_rsa
$ cat > ~/.ssh/id_rsa.pub
Ověřím připojení na bitbucket a přijmu ID vzdáleného stroje:
$ ssh git@bitbucket.org
Stáhnu zdrojové kódy:
$ git clone git@bitbucket.org:inited/seznamka.git
Spusím Cordovu a nastavím, že chci / nechci přispívat do statistik (na videu je to až v průběhu kompilace)
$ cordova
Spustím build:
$ ./aprepare.sh
$ ./abuild.sh
Tím získám APK soubor.
Dockerfile:
FROM ubuntu MAINTAINER INITED Solutions <info@inited.cz> ENV DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/Prague RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone RUN apt-get update RUN apt-get -y install apt-utils curl gnupg unzip git openjdk-19-jdk RUN curl -sL https://deb.nodesource.com/setup_18.x | bash - RUN apt-get -y install nodejs RUN npm install -g cordova @ionic/cli # jen na praci v prikazovem radku: RUN apt-get -y install vim less # kdyz pouzivam node-sass, ktery nenabizi binarku ke stazeni: #RUN apt-get -y install python build-essential # 15.11.2021 vypada to, ze gradle uz neni potreba # 21.11.2023 je potreba pro "cordova build android" :) RUN \ cd /usr/local && \ curl -L https://services.gradle.org/distributions/gradle-7.6-bin.zip -o gradle.zip && \ unzip gradle.zip && \ rm gradle.zip ENV PATH ${PATH}:/usr/local/gradle-7.6/bin # https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip # https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip RUN mkdir -p /opt/android/sdk && \ curl -L https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -o tools.zip && \ unzip tools.zip -d /opt/android/sdk && \ rm tools.zip ENV PATH ${PATH}:/opt/android/sdk/tools:/opt/android/sdk/tools/bin:/opt/android/sdk/platform-tools ENV ANDROID_HOME /opt/android/sdk ENV JAVA_HOME /usr/lib/jvm/java-19-openjdk-amd64 ENV ANDROID_SDK_ROOT /opt/android/sdk # Make license agreement RUN mkdir $ANDROID_HOME/licenses && \ echo 8933bad161af4178b1185d1a37fbf41ea5269c55 > $ANDROID_HOME/licenses/android-sdk-license && \ echo d56f5187479451eabf01fb78af6dfcb131a6481e >> $ANDROID_HOME/licenses/android-sdk-license && \ echo 24333f8a63b6825ea9c5514f83c2829b004d1fee >> $ANDROID_HOME/licenses/android-sdk-license && \ echo 84831b9409646a918e30573bab4c9c91346d8abd > $ANDROID_HOME/licenses/android-sdk-preview-license #RUN apt-get -y install openjdk-19-jdk #ENV JAVA_HOME /usr/lib/jvm/java-19-openjdk-amd64 # Update and install using sdkmanager RUN $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "tools" "platform-tools" && \ $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "build-tools;33.0.2" && \ $ANDROID_HOME/cmdline-tools/bin/sdkmanager --sdk_root=$ANDROID_SDK_ROOT "platforms;android-33" RUN npm i -g cordova-res RUN chmod -R 777 /usr/lib/node_modules #RUN useradd -ms /bin/bash user #USER user #WORKDIR /home/user