Tionscadal Android a thógáil i gcoimeádán Docker

Agus tionscadal á fhorbairt don ardán Android, fiú an ceann is lú, luath nó mall caithfidh tú déileáil leis an timpeallacht forbartha. Chomh maith leis an SDK Android, tá sé riachtanach go mbeadh an leagan is déanaí de Kotlin, Gradle, ardán-uirlisí, tógáil-uirlisí. Agus más rud é ar mheaisín an fhorbróra go ndéantar na spleáchais seo go léir a réiteach a bheag nó a mhór ag baint úsáide as an Android Studio IDE, ansin ar an bhfreastalaí CI / CD is féidir le gach nuashonrú a bheith ina tinneas cinn. Agus más rud é i bhforbairt gréasáin tá Docker tagtha chun bheith ina réiteach caighdeánach ar fhadhb an chomhshaoil, ansin cén fáth nach iarracht tú fadhb den chineál céanna a réiteach i bhforbairt Android agus é á úsáid ...

Dóibh siúd nach bhfuil a fhios cad é Docker, chun é a chur go simplí, is uirlis é chun an rud ar a dtugtar a chruthú. “coimeádáin” ina bhfuil eithne OS íosta agus na bogearraí riachtanacha is féidir linn a úsáid nuair is mian linn, agus an comhshaol á chaomhnú. Cinntear cad go díreach a bheidh inár gcoimeádán sa Dockerfile, a chuirtear le chéile ansin in íomhá is féidir a sheoladh in áit ar bith agus a bhfuil airíonna idempotency.

Tá cur síos breá ar an bpróiseas suiteála agus ar bhunghnéithe Docker ina chuid láithreán gréasáin oifigiúil. Mar sin, ag breathnú romhainn beagán, seo é an Dockerfile dar críoch muid suas le:

# Т.к. основным инструментом для сборки 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"

Sábhálann muid é san fhillteán lenár dtionscadal Android agus cuirimid tús leis an gcoimeádán a thógáil leis an ordú

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

Paraiméadar -t sonraíonn sé an chlib nó ainm ár gcoimeádán, arb é atá ann de ghnáth a ainm agus a leagan. Inár gcás, thugamar android-build air agus sa leagan léirigh muid sraith de leaganacha de gradle, android-sdk agus platform-tools. Amach anseo, beidh sé níos éasca dúinn an íomhá a theastaíonn uainn a chuardach de réir ainm agus an “leagan” seo á úsáid.

Tar éis don tionól a bheith críochnaithe, is féidir linn ár n-íomhá a úsáid go háitiúil, is féidir linn é a íoslódáil leis an ordú bhrú docker chuig stór íomhá poiblí nó príobháideach chun é a íoslódáil chuig meaisíní eile.

Mar shampla, déanaimis tionscadal a thógáil go háitiúil. Chun seo a dhéanamh, san fhillteán leis an tionscadal, reáchtáil an t-ordú

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

Déanaimis amach cad a chiallaíonn sé:

docker reáchtáil - an t-ordú seolta íomhá féin
-rm — ciallaíonn sé go scriosann sé gach rud a cruthaíodh le linn a shaoil ​​nuair a stopann an coimeádán
-v "$PWD":/baile/gradle/ — gléasann sé an fillteán reatha lenár dtionscadal Android san fhillteán coimeádán inmheánach /home/gradle/
-w / baile / gradle — sonraítear eolaire oibre an choimeádáin
android-tógáil:5.4.1-28-27 — ainm ár gcoimeádán a bhailigh muid
gradle assembleDebug — an fhoireann tionóil iarbhír a chuireann ár dtionscadal le chéile

Má théann gach rud go maith, ansin i gceann cúpla soicind / nóiméid feicfidh tú ar do scáileán rud éigin cosúil le TÓGÁIL rathúil i 8m 3s! Agus beidh an feidhmchlár le chéile san fhillteán aip/thógála/aschuir/apk.

Is féidir leat tascanna gradle eile a dhéanamh ar an mbealach céanna - seiceáil an tionscadal, reáchtáil tástálacha, etc. Is é an buntáiste is mó ná más gá dúinn an tionscadal a thógáil ar aon mheaisín eile, ní gá dúinn a bheith buartha faoin timpeallacht iomlán a shuiteáil agus beidh sé go leor chun an íomhá riachtanach a íoslódáil agus an tógáil ann a reáchtáil.

Ní stórálann an coimeádán aon athruithe, agus seoltar gach tionól ón tús, rud a ráthaíonn, ar thaobh amháin, céannacht an tionóil beag beann ar an áit a seoltar é, ar an láimh eile, gach uair a chaithfidh tú na spleáchais go léir a íoslódáil. agus an cód ar fad a thiomsú arís, agus is féidir go dtógfaidh sé seo go leor ama uaireanta. Mar sin, chomh maith leis an ngnáth-thosú “fuar”, tá an rogha againn an tógáil a thosú agus an rud ar a dtugtar a shábháil. “taisce”, áit a sábhálaimid an fillteán ~/.gradle ach é a chóipeáil go fillteán oibre an tionscadail, agus ag tús an chéad tógáil eile cuirimid ar ais é. Bhogamar na nósanna imeachta cóipeála go léir isteach i scripteanna ar leith agus thosaigh an t-ordú seolta féin ag breathnú mar seo

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"

Mar thoradh air sin, laghdaíodh ár meán-am tógála tionscadail arís agus arís eile (ag brath ar líon na spleáchais ar an tionscadal, ach mar sin thosaigh an meánthionscadal a chur le chéile i 1 nóiméad in ionad 5 nóiméad).

Ní dhéanann sé seo go léir, ar ndóigh, ciall ach amháin má tá do fhreastalaí CI/CD inmheánach agat, a dtugann tú tacaíocht duit féin. Ach anois tá go leor seirbhísí scamall ina réitítear na fadhbanna seo go léir agus ní gá duit a bheith buartha faoi, agus is féidir na hairíonna tionóil riachtanacha a shonrú freisin i socruithe an tionscadail.

Ní féidir ach le húsáideoirí cláraithe páirt a ghlacadh sa suirbhé. Sínigh isteach, le do thoil.

An gcoimeádann tú do chóras CI/CD intí nó an úsáideann tú seirbhís tríú páirtí?

  • Bainimid úsáid as freastalaí inmheánach

  • Bainimid úsáid as seirbhís sheachtrach

  • Ní úsáidimid CI/CD

  • Eile

Vótáil 42 úsáideoir. Staon 16 úsáideoir.

Foinse: will.com

Add a comment