Ionic cordova сборка android — Ubuntu для командной строки Android studio

#android #docker #android-studio #ionic-framework

#Android #докер #android-студия #ионный каркас

Вопрос:

Я пытаюсь создать ионный проект в среде CI. Изначально строился на Windows, но я хочу переключиться на linux для контейнера docker.

Теперь, как вы можете видеть из файла dockerfile ниже, я не устанавливаю полную студию Android, я просто устанавливаю инструмент командной строки.

Теперь я застрял на этой ANDROID_HOME части, потому что понятия не имею, куда она должна указывать ?

Если кто-то успешно установил докер с командной строкой Android studio внутри, я, кажется, не могу найти в Интернете ничего, что не использовало бы графический интерфейс.

Что я пытался :

 export ANDROID_HOME=/root/.android/  

Это дает результат

 Error: Could not find gradle wrapper within Android SDK. Might need to update your Android SDK. Looked here: /root/.android/tools/templates/gradle/wrapper  

И да, внизу нет папки .android , так что это не лучший ANDROID_HOME путь.

Поэтому я запускаю команду

 find / -name '*wrapper*'  

но нет никаких инструментов/шаблонов/gradle/обертки

 # base image FROM ubuntu:20.04   # block interactive actions (ex selecting country during installation) ARG DEBIAN_FRONTEND=noninteractive  # install linux packages RUN apt-get update amp;amp; apt-get -y install wget tar unzip openjdk-8-jdk build-essential checkinstall file apt-utils libreadline-gplv2-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev  # install python 2.7.18 RUN mkdir /python2.7 amp;amp; cd /python2.7 amp;amp; wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz amp;amp; tar xzf Python-2.7.18.tgz amp;amp; rm Python-2.7.18.tgz amp;amp; cd Python-2.7.18 amp;amp; ./configure --enable-optimizations amp;amp; make altinstall  # install node js version 10.19.0 for linux, should be local ? #RUN wget https://nodejs.org/dist/v10.19.0/node-v10.19.0-linux-x64.tar.gz amp;amp; tar -C /usr/local --strip-components 1 -xzf node-v10.19.0-linux-x64.tar.gz amp;amp; rm node-v10.19.0-linux-x64.tar.gz RUN wget https://nodejs.org/dist/v12.13.0/node-v12.13.0-linux-x64.tar.gz amp;amp; tar -C /usr/local --strip-components 1 -xzf node-v12.13.0-linux-x64.tar.gz amp;amp; rm node-v12.13.0-linux-x64.tar.gz  #install gradle 4.10.3 in 1 line to limit container size RUN wget https://services.gradle.org/distributions/gradle-4.10.3-bin.zip -P /tmp amp;amp; unzip -d /opt/gradle /tmp/gradle-4.10.3-bin.zip amp;amp; rm /tmp/gradle-4.10.3-bin.zip  # install android command line in 1 line to limit container size RUN wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip amp;amp; mkdir -p /sdk amp;amp; mv commandlinetools-linux-7583922_latest.zip /sdk amp;amp;   cd /sdk amp;amp; unzip commandlinetools-linux-7583922_latest.zip amp;amp; rm commandlinetools-linux-7583922_latest.zip WORKDIR "/sdk/cmdline-tools"  # specific to commandlinetools-linux-7583922 the unzipped folder is not correct, it needs to be under "latest" folder, so /cmdline-tools/latest/... # see https://stackoverflow.com/a/67413427/14137672 for more informations about this RUN mkdir .latest amp;amp; mv * .latest amp;amp; mv .latest latest  # add sdkmanager java gradle to path ENV PATH="/sdk/cmdline-tools/latest/bin:/usr/lib/jvm/java-8-openjdk-amd64/bin/:/sdk/cmdline-tools/latest:/opt/gradle/gradle-4.10.3/bin:/python2.7/Python-2.7.18:${PATH}" # create env variable ANDROID_SDK_ROOT amp; GRADLE_HOME ENV ANDROID_SDK_ROOT=/sdk/cmdline-tools/latest/bin ENV GRADLE_HOME=/opt/gradle/gradle-4.10.3  # install project requirements, Android Studio part WORKDIR "/sdk/cmdline-tools/latest/bin" RUN chmod  770 /sdk/cmdline-tools/latest/bin/sdkmanager RUN /sdk/cmdline-tools/latest/bin/sdkmanager "platform-tools" "platforms;android-19" "platforms;android-20" "platforms;android-21" "platforms;android-22" "platforms;android-23" "platforms;android-24" "platforms;android-25" "system-images;android-28;default;x86" RUN /sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-26" "platforms;android-27" "platforms;android-28" "platforms;android-29" "platforms;android-30" "platforms;android-31" "platforms;android-Sv2" "skiaparser;1" "system-images;android-29;google_apis;x86" RUN /sdk/cmdline-tools/latest/bin/sdkmanager "build-tools;31.0.0" "build-tools;30.0.2" "build-tools;29.0.3" "build-tools;29.0.2" "build-tools;29.0.1" "build-tools;29.0.0" "build-tools;28.0.3" "build-tools;20.0.0" "build-tools;19.1.0" "system-images;android-31;default;x86_64" RUN /sdk/cmdline-tools/latest/bin/sdkmanager "cmdline-tools;5.0" "cmdline-tools;4.0" "ndk;23.1.7779620" "emulator" "extras;google;market_apk_expansion" "extras;google;instantapps" "extras;google;market_licensing" "extras;google;google_play_services" RUN /sdk/cmdline-tools/latest/bin/sdkmanager "system-images;android-19;default;x86" "system-images;android-21;default;x86" "system-images;android-22;default;x86" "system-images;android-23;default;x86" "system-images;android-24;default;x86" "system-images;android-25;default;x86" "system-images;android-26;default;x86" "system-images;android-27;default;x86" RUN yes | /sdk/cmdline-tools/latest/bin/sdkmanager --licenses   # copy the local directory to the docker COPY . /usr/local/myapp WORKDIR "/usr/local/myapp"  # should not be commited  RUN rm -rf node_modules/ platforms/ plugins/ www/  # install project dependancies RUN npm audit fix amp;amp; npm install amp;amp; npm install -g ionic@5.4.16 cordova@10.0.0 native-run@1.5.0 cordova-res --unsafe-perm