Skip to content

Instantly share code, notes, and snippets.

@tbvinh
Created October 17, 2025 08:49
Show Gist options
  • Select an option

  • Save tbvinh/c707c01bd48b7ac93fa65f414a90b851 to your computer and use it in GitHub Desktop.

Select an option

Save tbvinh/c707c01bd48b7ac93fa65f414a90b851 to your computer and use it in GitHub Desktop.
How to use Docker Desktop build the ConnectBot APK

https://github.com/connectbot/connectbot

Mở 2 ps Conssole


Console 1, chạy:

docker-compose up --build

Build xong, trên 2 chạy

docker exec -it connectbot-apk-builder bash find /app -name "*.apk"

Hoặc console 2 chạy: docker cp connectbot-apk-builder:/app/app/build/outputs/apk/google/debug/app-google-debug.apk ~/Downloads/


Dockerfile


FROM eclipse-temurin:17-jdk

# Cài git và công cụ hỗ trợ
RUN apt-get update && apt-get install -y git unzip curl

# Tạo thư mục SDK
ENV ANDROID_SDK_ROOT=/sdk
RUN mkdir -p $ANDROID_SDK_ROOT/cmdline-tools

# Tải và cài Android Command Line Tools
RUN curl -o sdk-tools.zip https://dl.google.com/android/repository/commandlinetools-linux-9477386_latest.zip && \
    unzip sdk-tools.zip -d $ANDROID_SDK_ROOT/cmdline-tools && \
    rm sdk-tools.zip && \
    mv $ANDROID_SDK_ROOT/cmdline-tools/cmdline-tools $ANDROID_SDK_ROOT/cmdline-tools/latest

# Thêm sdkmanager vào PATH
ENV PATH=$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools:$PATH

# Cài SDK và build tools
RUN yes | sdkmanager --licenses && \
    sdkmanager "platform-tools" "platforms;android-33" "build-tools;33.0.2"

# ✅ Tạo volume để cache Gradle và Android SDK giữa các lần build
VOLUME ["/root/.gradle", "/root/.android"]

# Clone mã nguồn ConnectBot
RUN git clone https://github.com/connectbot/connectbot.git /app

# Build APK
WORKDIR /app
#RUN ./gradlew assembleDebug

#CMD ["./gradlew", "assembleDebug"]
CMD ./gradlew assembleDebug && tail -f /dev/null


Docker-composer.yml


version: '3'
services:
  connectbot-builder:
    build: .
    container_name: connectbot-apk-builder
    volumes:
      - gradle-cache:/root/.gradle
      - android-cache:/root/.android

volumes:
  gradle-cache:
  android-cache:
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment