ื‘ื•ื™ืขืŸ ืึทืŸ ืึทื ื“ืจื•ื™ื“ ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ืึท ื“ืึธืงืงืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ

ื•ื•ืขืŸ ืื™ืจ ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ืคึฟืึทืจ ื“ื™ ืึทื ื“ืจื•ื™ื“ ืคึผืœืึทื˜ืคืึธืจืžืข, ืืคื™ืœื• ื“ืขืจ ืงืœืขื ืกื˜ืขืจ ืื™ื™ื ืขืจ, ื’ื™ื›ืขืจ ืึธื“ืขืจ ืฉืคึผืขื˜ืขืจ ืื™ืจ ื”ืึธื‘ืŸ ืฆื• ื”ืึทื ื“ืœืขืŸ ืžื™ื˜ ื“ื™ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืกื•ื•ื™ื•ื•ืข. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ืึทื ื“ืจื•ื™ื“ ืกื“ืง, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื”ืึธื‘ืŸ ื“ื™ ืœืขืฆื˜ืข ื•ื•ืขืจืกื™ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ืงืึธื˜ืœื™ืŸ, ื’ืจืึทื“ืœืข, ืคึผืœืึทื˜ืคืึธืจืžืข ืžื›ืฉื™ืจื™ื, ื‘ื•ื™ืขืŸ ืžื›ืฉื™ืจื™ื. ืื•ืŸ ืื•ื™ื‘ ืื•ื™ืฃ ื“ื™ ื“ืขื•ื•ืขืœืึธืคึผืขืจ ืก ืžืึทืฉื™ืŸ ืึทืœืข ื“ื™ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ื–ืขื ืขืŸ ืกืึทืœื•ื•ื“ ืื™ืŸ ืึท ื’ืจืขืกืขืจืข ืžืึธืก ื ื™ืฆืŸ ื“ื™ ืึทื ื“ืจื•ื™ื“ ืกื˜ื•ื“ื™ืึธ IDE, ื“ืขืžืึธืœื˜ ืื•ื™ืฃ ื“ื™ ืกื™ / ืกื™ ืกืขืจื•ื•ืขืจ ื™ืขื“ืขืจ ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงืŸ ืงืขื ืขืŸ ื•ื•ืขืจืŸ ืึท ืงืึธืคึผื•ื•ื™ื™ื˜ื™ืง. ืื•ืŸ ืื•ื™ื‘ ืื™ืŸ ื•ื•ืขื‘ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ื“ืึธืงืขืจ ืื™ื– ื’ืขื•ื•ืืจืŸ ื“ืขืจ ื ืึธืจืžืึทืœ ืœื™ื™ื–ื•ื ื’ ืคึฟืึทืจ ื“ื™ ืกื•ื•ื™ื•ื•ืข ืคึผืจืึธื‘ืœืขื, ืคืืจื•ื•ืืก ื˜ืึธืŸ ื ื™ื˜ ืคึผืจื•ื‘ื™ืจืŸ ืฆื• ืกืึธืœื•ื•ืข ืึท ืขื ืœืขืš ืคึผืจืึธื‘ืœืขื ืื™ืŸ ืึทื ื“ืจื•ื™ื“ ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’ ืžื™ื˜ ืขืก ...

ืคึฟืึทืจ ื“ื™ ื•ื•ืืก ื˜ืึธืŸ ื ื™ื˜ ื•ื•ื™ืกืŸ ื•ื•ืึธืก ื“ืึธืงืขืจ ืื™ื–, ืฆื• ืœื™ื™ื’ืŸ ืขืก ืคืฉื•ื˜, ืขืก ืื™ื– ืึท ื’ืขืฆื™ื™ึทื’ ืคึฟืึทืจ ืงืจื™ื™ื™ื˜ื™ื ื’ ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข. "ืงืึทื ื˜ืึทื ืขืจื–" ื•ื•ืึธืก ืึทื ื˜ื”ืึทืœื˜ืŸ ืึท ืžื™ื ื™ืžืึทืœ ืึทืก ืงืขืจืŸ ืื•ืŸ ื“ื™ ื ื•ื™ื˜ื™ืง ื’ืึทื ื’ ืคื•ืŸ ื•ื•ื™ื™ื›ื•ื•ืืจื’ ื•ื•ืึธืก ืžื™ืจ ืงืขื ืขืŸ ืฆืขื•ื•ื™ืงืœืขืŸ ื•ื•ืื•ื”ื™ืŸ ืžื™ืจ ื•ื•ื™ืœืŸ, ื‘ืฉืขืช ืคึผืจืึทื–ืขืจื•ื•ื™ื ื’ ื“ื™ ืกื•ื•ื™ื•ื•ืข. ื•ื•ืึธืก ืคึผื•ื ืงื˜ ื•ื•ืขื˜ ื–ื™ื™ืŸ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ืื™ื– ื‘ืืฉืœืืกืŸ ืื™ืŸ ื“ื™ Dockerfile, ื•ื•ืึธืก ืื™ื– ื“ืขืžืึธืœื˜ ืึทืกืขืžื‘ืึทืœื“ ืื™ืŸ ืึท ื‘ื™ืœื“ ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ืœืึธื ื˜ืฉื˜ ืขืจื’ืขืฅ ืื•ืŸ ื”ืื˜ ื™ื“ืขืžืคึผืึธื˜ืขื ืกื™ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก.

ื“ื™ ื™ื™ึทื ืžืึธื ื˜ื™ืจื•ื ื’ ืคึผืจืึธืฆืขืก ืื•ืŸ ื‘ืึทืกื™ืงืก ืคื•ืŸ ื“ืึธืงืขืจ ื–ืขื ืขืŸ ื‘ื™ืฉืœื™ื™ืžืขืก ื“ื™ืกืงืจื™ื™ื‘ื“ ืื™ืŸ ื–ื™ื™ืŸ ื“ืขืจ ื‘ืึทืึทืžื˜ืขืจ ืคึผืœืึทืฅ. ื“ืขืจื™ื‘ืขืจ, ืึท ื‘ื™ืกืœ ืคืึธืจื•ื™ืก, ื“ืึธืก ืื™ื– ื“ื™ Dockerfile ืžื™ื˜ ื•ื•ืึธืก ืžื™ืจ ืขื ื“ื™ืงืŸ:

# ะข.ะบ. ะพัะฝะพะฒะฝั‹ะผ ะธะฝัั‚ั€ัƒะผะตะฝั‚ะพะผ ะดะปั ัะฑะพั€ะบะธ 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"

ืžื™ืจ ืจืึทื˜ืขื•ื•ืขืŸ ืขืก ืื™ืŸ ื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ืื•ื ื“ื–ืขืจ ืึทื ื“ืจื•ื™ื“ ืคึผืจื•ื™ืขืงื˜ ืื•ืŸ ืึธื ื”ื™ื™ื‘ืŸ ืฆื• ื‘ื•ื™ืขืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ

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

ืคึผืึทืจืึทืžืขื˜ืขืจ -t ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ื“ื™ ืงื•ื•ื™ื˜ืœ ืึธื“ืขืจ ื ืึธืžืขืŸ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ, ื•ื•ืึธืก ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื–ื™ื™ืŸ ื ืึธืžืขืŸ ืื•ืŸ ื•ื•ืขืจืกื™ืข. ืื™ืŸ ืื•ื ื“ื–ืขืจ ืคืึทืœ, ืžื™ืจ ื’ืขืจื•ืคึฟืŸ ืขืก android-build ืื•ืŸ ืื™ืŸ ื“ืขืจ ื•ื•ืขืจืกื™ืข ืžื™ืจ ืื ื’ืขื•ื•ื™ื–ืŸ ืึท ื’ืึทื ื’ ืคื•ืŸ ื•ื•ืขืจืกื™ืขืก ืคื•ืŸ ื’ืจืึทื“ืœืข, android-sdk ืื•ืŸ platform-tools. ืื™ืŸ ื“ืขืจ ืฆื•ืงื•ื ืคึฟื˜, ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืจื™ื ื’ืขืจ ืคึฟืึทืจ ืื•ื ื“ื– ืฆื• ื–ื•ื›ืŸ ืคึฟืึทืจ ื“ื™ ื‘ื™ืœื“ ื•ื•ืึธืก ืžื™ืจ ื“ืึทืจืคึฟืŸ ืžื™ื˜ ื“ืขื ื ืึธืžืขืŸ ืžื™ื˜ ื“ืขื "ื•ื•ืขืจืกื™ืข".

ื ืึธืš ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื™ื– ื’ืขืขื ื“ื™ืงื˜, ืžื™ืจ ืงืขื ืขืŸ ื ื•ืฆืŸ ืื•ื ื“ื–ืขืจ ื‘ื™ืœื“ ืœืึธื•ืงืึทืœื™, ืžื™ืจ ืงืขื ืขืŸ ืืจืืคืงืืคื™ืข ืขืก ืžื™ื˜ ื“ื™ ื‘ืึทืคึฟืขืœ ื“ืึธืงืขืจ ืฉื˜ื•ืคึผืŸ ืฆื• ืึท ืขืคื ื˜ืœืขืš ืึธื“ืขืจ ืคึผืจื™ื•ื•ืึทื˜ ื‘ื™ืœื“ ืจื™ืคึผืึทื–ืึทื˜ืึธืจื™ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ืขืก ืฆื• ืื ื“ืขืจืข ืžืืฉื™ื ืขืŸ.

ื•ื•ื™ ืึท ื‘ื™ื™ึทืฉืคึผื™ืœ, ืœืึธืžื™ืจ ื‘ื•ื™ืขืŸ ืึท ืคึผืจื•ื™ืขืงื˜ ืœืึธื•ืงืึทืœื™. ืฆื• ื˜ืึธืŸ ื“ืึธืก, ืœื•ื™ืคืŸ ื“ื™ ื‘ืึทืคึฟืขืœ ืื™ืŸ ื“ืขืจ ื˜ืขืงืข ืžื™ื˜ ื“ื™ ืคึผืจื•ื™ืขืงื˜

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

ื–ืืœ ืก ืจืขื›ืขื ืขืŸ ืื•ื™ืก ื•ื•ืึธืก ืขืก ืžื™ื˜ืœ:

ื“ืึธืงืขืจ ืœื•ื™ืคืŸ - ื“ื™ ื‘ื™ืœื“ ืงืึทื˜ืขืจ ื‘ืึทืคึฟืขืœ ื–ื™ืš
-ืจื โ€” ืžื™ื˜ืœ ืึทื– ื ืึธืš ื“ืขื ืึธืคึผืฉื˜ืขืœืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ, ืขืก ื•ื™ืกืžืขืงืŸ ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ื’ืขื•ื•ืขืŸ ื‘ืืฉืืคืŸ ื‘ืขืฉืึทืก ื–ื™ื™ืŸ ืœืขื‘ืŸ
-v "$PWD":/home/gradle/ - ืžืึทื•ื ืฅ ื“ื™ ืงืจืึทื ื˜ ื˜ืขืงืข ืžื™ื˜ ืื•ื ื“ื–ืขืจ ืึทื ื“ืจื•ื™ื“ ืคึผืจื•ื™ืขืงื˜ ืื™ืŸ ื“ื™ ื™ื ืขืจืœืขืš ืงืึทื ื˜ื™ื™ื ืขืจ ื˜ืขืงืข /home/gradle/
-w /home/gradle - ืกืคึผืขืฆื™ืคื™ืฆื™ืจื˜ ื“ื™ ืึทืจื‘ืขื˜ ื•ื•ืขื’ื•ื•ื™ื™ึทื–ืขืจ ืคื•ืŸ ื“ืขื ืงืึทื ื˜ื™ื™ื ืขืจ
ืึทื ื“ืจื•ื™ื“-ื‘ื•ื™ืขืŸ: 5.4.1-28-27 โ€” ื“ืข ืจ ื ืืžืข ืŸ ืคื• ืŸ ืื•ื ื“ื–ืข ืจ ืงืื ื˜ืข ืจ ืฐื ื ืžื™ ืจ ื”ืื‘ ืŸ ื’ืขื–ืืžืœื˜
gradle assembleDebug - ื“ื™ ืคืึทืงื˜ื™ืฉ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืžืึทื ืฉืึทืคึฟื˜ ื•ื•ืึธืก ืึทืกืขืžื‘ืึทืœื– ืื•ื ื“ื–ืขืจ ืคึผืจื•ื™ืขืงื˜

ืื•ื™ื‘ ืึทืœืฅ ื’ื™ื™ื˜ ื’ื•ื˜, ืื™ืŸ ืึท ืคึผืึธืจ ืคื•ืŸ ืกืขืงื•ื ื“ืขืก / ืžื™ื ื•ื˜ ืื™ืจ ื•ื•ืขื˜ ื–ืขืŸ ืื•ื™ืฃ ื“ื™ื™ืŸ ืคืึทืจืฉื˜ืขืœืŸ ืขืคึผืขืก ื•ื•ื™ ื‘ื•ื™ืขืŸ ื’ืขืจืึธื˜ืŸ ืื™ืŸ 8 ื 3 ืก! ืื•ืŸ ื“ื™ ืึทืคึผ / ื‘ื•ื™ืขืŸ / ืจืขื–ื•ืœื˜ืึทื˜ / ืึทืคึผืง ื˜ืขืงืข ื•ื•ืขื˜ ืึทื ื˜ื”ืึทืœื˜ืŸ ื“ื™ ืึทืกืขืžื‘ืึทืœื“ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ.

ืื™ืจ ืงืขื ืขืŸ ื“ื•ืจื›ืคื™ืจืŸ ืื ื“ืขืจืข ื’ืจืึทื“ื–ืฉืึทืœ ื˜ืึทืกืงืก ืื™ืŸ ืึท ืขื ืœืขืš ื•ื•ืขื’ - ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜, ืœื•ื™ืคืŸ ื˜ืขืกืฅ, ืขื˜ืง. ื“ืขืจ ื”ื•ื™ืคึผื˜ ืžื™ื™ึทืœืข ืื™ื– ืึทื– ืื•ื™ื‘ ืžื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ื•ื™ืขืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืื•ื™ืฃ ืงื™ื™ืŸ ืื ื“ืขืจืข ืžืึทืฉื™ืŸ, ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื“ืึทืจืคึฟืŸ ืฆื• ื–ืึธืจื’ ื•ื•ืขื’ืŸ ื™ื ืกื˜ืึธืœื™ื ื’ ื“ื™ ื’ืื ืฆืข ืกื•ื•ื™ื•ื•ืข ืื•ืŸ ืขืก ื•ื•ืขื˜ ื–ื™ื™ืŸ ื’ืขื ื•ื’ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ื‘ื™ืœื“ ืื•ืŸ ืœื•ื™ืคืŸ ื“ื™ ื‘ื™ืœื“ ืื™ืŸ ืขืก.

ื“ืขืจ ืงืึทื ื˜ื™ื™ื ืขืจ ื˜ื•ื˜ ื ื™ืฉื˜ ืงืจืึธื ืงื™ื™ืŸ ืขื ื“ืขืจื•ื ื’ืขืŸ, ืื•ืŸ ื™ืขื“ืขืจ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืื™ื– ืœืึธื ื˜ืฉื˜ ืคึฟื•ืŸ ืงืจืึทืฆืŸ, ื•ื•ืึธืก, ืื•ื™ืฃ ื“ื™ ืื™ื™ืŸ ื”ืึทื ื˜, ื’ืขืจืึทื ื˜ื™ื– ื“ื™ ืื™ื“ืขื ื˜ื™ื˜ืขื˜ ืคื•ืŸ ื“ื™ ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืจืึทื’ืึทืจื“ืœืึทืก ืคื•ืŸ ื•ื•ื• ืขืก ืื™ื– ืœืึธื ื˜ืฉื˜, ืื•ื™ืฃ ื“ื™ ืื ื“ืขืจืข ื”ืึทื ื˜, ื™ืขื“ืขืจ ืžืึธืœ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ืึธืคึผืœืึธื“ื™ืจืŸ ืึทืœืข ื“ื™ ื“ืขืคึผืขื ื“ืึทื ืกื™ื– ืื•ืŸ ืฆื•ื ื•ื™ืคื ืขืžืขืŸ ืึทืœืข ื“ื™ ืงืึธื“ ื•ื•ื™ื“ืขืจ, ืื•ืŸ ื“ืึธืก ืงืขืŸ ืžืืœ ื ืขืžืขืŸ ืึท ื‘ืึทื˜ื™ื™ื˜ื™ืง ืฆื™ื™ื˜. ื“ืขืจื™ื‘ืขืจ, ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ืœืขืš "ืงืึทืœื˜" ืึธื ื”ื™ื™ื‘, ืžื™ืจ ื”ืึธื‘ืŸ ื“ื™ ืึธืคึผืฆื™ืข ืฆื• ืึธื ื”ื™ื™ื‘ืŸ ื“ืขื ื‘ื•ื™ืขืŸ ื‘ืฉืขืช ืฉืคึผืึธืจืŸ ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข. "ืงืึทืฉ", ื•ื•ื• ืžื™ืจ ืจืึทื˜ืขื•ื•ืขืŸ ื“ื™ ~/.ื’ืจืึทื“ืœืข ื˜ืขืงืข ื“ื•ืจืš ืคืฉื•ื˜ ืงืึทืคึผื™ื™ื ื’ ืขืก ืฆื• ื“ื™ ืึทืจื‘ืขื˜ ื˜ืขืงืข ืคื•ืŸ โ€‹โ€‹ื“ื™ ืคึผืจื•ื™ืขืงื˜, ืื•ืŸ ืื™ืŸ ื“ื™ ืึธื ื”ื™ื™ื‘ ืคื•ืŸ ื“ื™ ื•ื•ื™ื™ึทื˜ืขืจ ื‘ื•ื™ืขืŸ ืžื™ืจ ืฆื•ืจื™ืงืงื•ืžืขืŸ ืขืก ืฆื•ืจื™ืง. ืžื™ืจ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืึทืœืข ืงืึทืคึผื™ื™ื ื’ ืคึผืจืึธื•ืกื™ื“ื–ืฉืขืจื– ืื™ืŸ ื‘ืึทื–ื•ื ื“ืขืจ ืกืงืจื™ืคึผืก ืื•ืŸ ื“ื™ ืงืึทื˜ืขืจ ื‘ืึทืคึฟืขืœ ื–ื™ืš ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ืงื•ืงืŸ ื•ื•ื™ ื“ืึธืก

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"

ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืื•ื ื“ื–ืขืจ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืคึผืจื•ื™ืขืงื˜ ื‘ื•ื™ืขืŸ ืฆื™ื™ื˜ ืื™ื– ืจื™ื“ื•ืกื˜ ืขื˜ืœืขื›ืข ืžืึธืœ (ื“ื™ืคึผืขื ื“ื™ื ื’ ืื•ื™ืฃ ื“ื™ ื ื•ืžืขืจ ืคื•ืŸ ื“ื™ืคึผืขื ื“ืึทื ืกื™ื– ืื•ื™ืฃ ื“ื™ ืคึผืจื•ื™ืขืงื˜, ืึธื‘ืขืจ ื“ื™ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš ืคึผืจื•ื™ืขืงื˜ ืึทื–ื•ื™ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื–ื™ื™ืŸ ืคืืจื–ืืžืœื˜ ืื™ืŸ 1 ืžื™ื ื•ื˜ ืึทื ืฉื˜ืึธื˜ ืคื•ืŸ 5 ืžื™ื ื•ื˜).

ืึทืœืข ื“ืขื, ืคื•ืŸ ืงื•ืจืก, ื ืึธืจ ืžืื›ื˜ ื–ื™ื ืขืŸ ืื•ื™ื‘ ืื™ืจ ื”ืึธื‘ืŸ ื“ื™ื™ืŸ ืื™ื™ื’ืขื ืข ื™ื ืขืจืœืขืš ืกื™ / ืกื™ ืกืขืจื•ื•ืขืจ, ื•ื•ืึธืก ืื™ืจ ืฉื˜ื™ืฆืŸ ื–ื™ืš. ืื‘ืขืจ ืื™ืฆื˜ ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ื•ื•ืึธืœืงืŸ ื‘ืึทื“ื™ื ื•ื ื’ืก ืื™ืŸ ื•ื•ืึธืก ืึทืœืข ื“ื™ ืคึผืจืึธื‘ืœืขืžืก ื–ืขื ืขืŸ ืกืึทืœื•ื•ื“ ืื•ืŸ ืื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื”ืึธื‘ืŸ ืฆื• ื–ืึธืจื’ ื•ื•ืขื’ืŸ ืขืก, ืื•ืŸ ื“ื™ ื ื™ื™ื˜ื™ืง ืคึฟืึทืจื–ืึทืžืœื•ื ื’ ืคึผืจืึธืคึผืขืจื˜ื™ืขืก ืงืขื ืขืŸ ืื•ื™ืš ื–ื™ื™ืŸ ืกืคึผืขืกื™ืคื™ืขื“ ืื™ืŸ ื“ื™ ืคึผืจื•ื™ืขืงื˜ ืกืขื˜ื˜ื™ื ื’ืก.

ื‘ืœื•ื™ื– ืจืขื’ื™ืกื˜ืจื™ืจื˜ ื ื™ืฆืขืจืก ืงืขื ืขืŸ ืึธื ื˜ื™ื™ืœ ื ืขืžืขืŸ ืื™ืŸ ื“ื™ ื™ื‘ืขืจื‘ืœื™ืง. ืกื™ื™ืŸ ืืจื™ื™ืŸื‘ื™ื˜ืข.

ืฆื™ ืื™ืจ ื”ืึทืœื˜ืŸ ื“ื™ื™ืŸ ืกื™ / ืกื™ ืกื™ืกื˜ืขื ืื™ืŸ-ื”ื•ื™ื– ืึธื“ืขืจ ื ื•ืฆืŸ ืึท ื“ืจื™ื˜ ืคึผืึทืจื˜ื™ื™ ื“ื™ื ืกื˜?

  • ืžื™ืจ ื ื•ืฆืŸ ืึทืŸ ื™ื ืขืจืœืขืš ืกืขืจื•ื•ืขืจ

  • ืžื™ืจ ื ื•ืฆืŸ ืึท ืคื•ื ื“ืจื•ื™ืกื ื“ื™ืง ื“ื™ื ืกื˜

  • ืžื™ืจ ื˜ืึธืŸ ื ื™ื˜ ื ื•ืฆืŸ CI / CD

  • ืึทื ื“ืขืจืขืจ

42 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื’ืขืฉื˜ื™ืžื˜. 16 ื‘ืื ื•ืฆืขืจ ื”ืื‘ืŸ ื–ื™ืš ืืคื’ืขื”ืืœื˜ืŸ.

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’