Aedificationem Android project in Docker continens

Cum MASCULINUS suggestum developing in project, etiam parvum, citius aut serius evolutionis ambitum agere debebis. Praeter Android SDK, necesse est novissimam versionem Kotlin, Gradle, suggestu instrumenta, instrumenta fabricandi habere. Et si in machina elit in omnes hae dependentiae solvuntur latius utentes MAS Studio IDE, tunc in CI/CD server renovatio quaelibet in capitis dolorem vertere potest. Et si in evolutione interretiali Docker vexillum solutionis quaestionis environment facta est, cur non coneris problema similem MASCULI evolutionis solvere utendo...

Nam qui nesciunt quid sit Docker, ut simpliciter, id est instrumentum ad creandum sic dictum. "vasa" quae nucleum OS minimam continent ac necessariam programmatum ponemus quocunque volumus explicari, servato ambitu. Quid exacte in vase nostro erit, in Dockerfile determinatur, quae tunc in imaginem conglobatur, quae alicubi evehi potest et proprietates idempotentia habet.

Processus institutionis ac basics Docker in his perfecte descripti sunt rutrum. Ergo paululum prospicimus, hoc est Dockerfile finivimus;

# Т.к. основным инструментом для сборки Android-проектов является Gradle, 
# и по счастливому стечению обстоятельств есть официальный Docker-образ 
# мы решили за основу взять именно его с нужной нам версией Gradle
FROM gradle:5.4.1-jdk8

# Задаем переменные с локальной папкой для Android SDK и 
# версиями платформы и инструментария
ENV SDK_URL="https://dl.google.com/android/repository/sdk-tools-linux-3859397.zip" 
    ANDROID_HOME="/usr/local/android-sdk" 
    ANDROID_VERSION=28 
    ANDROID_BUILD_TOOLS_VERSION=28.0.3

# Создаем папку, скачиваем туда SDK и распаковываем архив,
# который после сборки удаляем
RUN mkdir "$ANDROID_HOME" .android 
    && cd "$ANDROID_HOME" 
    && curl -o sdk.zip $SDK_URL 
    && unzip sdk.zip 
    && rm sdk.zip 
# В следующих строчках мы создаем папку и текстовые файлы 
# с лицензиями. На оф. сайте Android написано что мы 
# можем копировать эти файлы с машин где вручную эти 
# лицензии подтвердили и что автоматически 
# их сгенерировать нельзя
    && mkdir "$ANDROID_HOME/licenses" || true 
    && echo "24333f8a63b6825ea9c5514f83c2829b004d1" > "$ANDROID_HOME/licenses/android-sdk-license" 
    && echo "84831b9409646a918e30573bab4c9c91346d8" > "$ANDROID_HOME/licenses/android-sdk-preview-license"    

# Запускаем обновление SDK и установку build-tools, platform-tools
RUN $ANDROID_HOME/tools/bin/sdkmanager --update
RUN $ANDROID_HOME/tools/bin/sdkmanager "build-tools;${ANDROID_BUILD_TOOLS_VERSION}" 
    "platforms;android-${ANDROID_VERSION}" 
    "platform-tools"

Servamus eam in folder cum MASCULINUS incepto et incipimus aedificare vas cum mandato

docker build -t android-build:5.4-28-27 .

parametri -t significat tag vel nomen continentis nostri, quod plerumque ex suo nomine et versione consistit. In casu nostro eam android-aedificare appellavimus et in versione copiam versionum graduum, android-sdk et suggestu instrumentorum significavimus. In posterum facilius nobis erit quaerendum imaginem quam nominatim utendo hac "versione".

Post expletam congregationem, imaginem nostram localiter uti possumus, eam mandato exsequi possumus docker dis repositorium ad imaginem publicam vel privatam ut eam aliis machinis deponant.

Exemplum, consilium loco faciamus. Hoc facere, in folder incepto, currite mandatum

docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 gradle assembleDebug

Sit scriptor instar quid est:

currere Docker - imago Lorem ipsum mandatum
-rm — significat, postquam sistit continens, omnia delet quae in vita sua creata sunt
-v "$PWD":/domum/gradle/ - ascendit current folder cum Android project in internum continens folder / home/gradle/
-w /domum/gradle - cificat opus directorium continentis
android - build : 5.4.1-28-27 - nomen vasis nostri quod collegimus
gradle assembleDebug - ipsam ecclesiam quadrigis qui nostrum project convenerunt

Si omnia bene, tum in duobus secundis / minutis videbis in tuo screen aliquid simile CONLOCO SECUNDUS in 8m 3s *! Et folder app/constructum/output/apk applicatio collectam continebit.

Simili modo alia gradatim exercere potes - inceptum inhibe, currendi probationes, etc. Praecipua utilitas est quod si opus est ut in quavis alia machina struendo construas, non curandum est de institutione totius ambitus et satis erit imaginem necessariam in ea aedificare et in ea aedificare.

Continens nullas mutationes refert, et unaquaeque ecclesia a scabere educitur, quod ex una parte praestat identitatem conventus cuiuscumque in quo emittitur, ex altera parte, quotiescumque debebis, omnes clientelas extrahere. et totum codicem iterum ordinare, et hoc interdum tempus significativum capere potest. Propterea, praeter initium "frigus" solitum, optionem habemus aedificandi incipiendi, servato sic dicto. "cache", ubi ~/.gradle folder servamus simpliciter scribendo in folder project molientis, et in principio proximi aedificationis illud reddemus. Omnes rationes describendi movimus in scripta separata ac ipsum mandatum Lorem ipsum spectare coeperunt

docker run --rm -v "$PWD":/home/gradle/ -w /home/gradle android-build:5.4.1-28-27 /bin/bash -c "./pre.sh; gradle assembleDebug; ./post.sh"

Quam ob rem tempus nostrum mediocris project constructum pluries reductum est (secundum numerum dependentiarum in project, sed medium consilium sic in 1 minutis loco 5 minuta convocari coepit).

Haec omnia, utique, solum sensum efficit si domesticum CI/CD tuum habes, quod te ipsum sustentas. Nunc autem multae sunt nubes servitia in quibus omnia haec problemata solvuntur et de eo curare non debes, et necessariae possessiones conventus in uncinis inceptis etiam specificari possunt.

Tantum usores descripserunt in aliquet participare possunt. InscribeTe gratissimum esse.

Tenesne CI/CD systema in domo vel in tertia factione utere servitio?

  • Utimur internus servo

  • Utimur exteriori servitio

  • CI non utimur / CD *

  • alium

42 utentes censuerunt. 16 Utentes abstinuerunt.

Source: www.habr.com

Add a comment