本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

提供latest镜像中已安装软件的实时列表。有关标记版本和latest镜像中安装的各种软件详情,请参见矩阵文件。
最新标记版本包含以下组件:
该Docker镜像基于本仓库的Dockerfile通过Github Action自动公开构建,无隐藏内容。
拉取最新镜像:
docker pull mingc/android-build-box:latest
提示:建议使用特定稳定版本的标签而非latest,以避免构建中断。例如mingc/android-build-box:1.25.0。
查看标签列表获取所有可用标签,变更日志了解标签间差异,兼容性矩阵查看各标签对应的软件版本(如标签1.2.0包含SDK x、y、z等)。
缓存使用方法请参见缓存部分。
通过以下命令使用该镜像构建Android项目:
cd <android项目目录> # 切换到项目根目录 docker run --rm -v `pwd`:/project mingc/android-build-box bash -c 'cd /project; ./gradlew build'
构建.aab格式发布包:
cd <android项目目录> # 切换到项目根目录 docker run --rm -v `pwd`:/project mingc/android-build-box bash -c 'cd /project; ./gradlew bundleRelease'
以交互式bash shell运行容器:
docker run -v `pwd`:/project -it mingc/android-build-box bash -l
缓存不会减少总磁盘空间需求,反而可能增加(例如Android SDK缓存可能使空间翻倍)。需注意镜像本身约占16.2GB,缓存可能额外占用6GB。
为缓存全局Java设置(/root/.jenv/version),需缓存整个jEnv文件夹/root/.jenv/:
在主机创建缓存目录:
mkdir ~/.dockercache/jenv
创建命名卷jenv-cache:
docker volume create --driver local --opt type=none --opt device=~/.dockercache/jenv/ --opt o=bind jenv-cache
运行容器时挂载该卷:
docker run --rm -v jenv-cache:"/root/.jenv/" mingc/android-build-box bash -l `echo "Hello World"`
添加以下参数以缓存Gradle主目录:
-v "$HOME/.dockercache/gradle":"/root/.gradle"
示例:
docker run --rm -v `pwd`:/project -v "$HOME/.dockercache/gradle":"/root/.gradle" mingc/android-build-box bash -c 'cd /project; ./gradlew build'
在gradle.properties中启用缓存:
org.gradle.caching=true
缓存SDK可灵活更新/移除平台/构建工具。1.25.0版本中/opt/android-sdk/约需6GB空间。
在主机创建缓存目录:
mkdir ~/.dockercache/android-sdk
创建命名卷android-sdk-cache:
docker volume create --driver local --opt type=none --opt device=~/.dockercache/android-sdk/ --opt o=bind android-sdk-cache
运行容器时挂载该卷:
docker run --rm -v android-sdk-cache:"/opt/android-sdk/" mingc/android-build-box bash -l
使用sdkmanager管理SDK组件:
sdkmanager --list_installedsdkmanager --uninstall 'platforms;android-26'sdkmanager --install 'platforms;android-26'完整文档参见sdkmanager官方文档。
推荐设置以下JVM参数:
org.gradle.jvmargs=-Xmx8192m -XX:MaxMetaspaceSize=1024m -XX:+UseContainerSupport -XX:MaxRAMPercentage=97.5
参数说明:
-Xmx8192m:JVM最大内存(支持g为单位)-XX:MaxMetaspaceSize=1024m:元空间最大大小(修复Gradle bug gradle/gradle#19750)-XX:+UseContainerSupport:允许JVM感知容器环境(默认启用)-XX:MaxRAMPercentage=97.5:JVM最大使用容器内存的97.5%容器总内存应大于Xmx + MaxMetaspaceSize + 预留空间(如10GB容器可分配8GB Xmx + 1GB MaxMetaspaceSize + 1GB预留)。
在Bitbucket仓库的bitbucket-pipelines.yml中指定该镜像:
image: mingc/android-build-box:latest pipelines: default: - step: caches: - gradle - gradle-wrapper - android-emulator script: - . ~/.bash_profile - jenv global 11 # 切换Java版本 - bash ./gradlew assemble definitions: caches: gradle-wrapper: ~/.gradle/wrapper android-emulator: $ANDROID_HOME/system-images/android-21
示例.github/workflows/main.yml:
name: CI on: [push] jobs: build: runs-on: ubuntu-20.04 container: mingc/android-build-box:latest steps: - uses: actions/checkout@v3 - uses: actions/cache@v3 with: path: /root/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: | ${{ runner.os }}-gradle- - name: Build run: | echo "Work dir: $(pwd)" echo "User: $(whoami)" flutter --version flutter analyze flutter build apk - name: Archive apk uses: actions/upload-artifact@v3 with: name: apk path: build/app/outputs/apk - name: Test run: flutter test - name: Clean build to avoid action/cache error run: rm -fr build
以下脚本创建并启动ARM模拟器(用于集成测试/ instrumentation测试):
#!/bin/bash export ADB_INSTALL_TIMEOUT=30 # 增加ADB超时时间 # 下载ARM系统镜像 sdkmanager "system-images;android-22;default;armeabi-v7a" # 创建AVD模拟器(100MB SD卡) echo "no" | avdmanager create avd \ -n Android_5.1_API_22 \ -k "system-images;android-22;default;armeabi-v7a" \ -c 100M \ --force # 后台启动模拟器 $ANDROID_HOME/emulator/emulator -avd Android_5.1_API_22 -no-skin -no-audio -no-window -no-boot-anim -gpu off & # 需添加延迟等待模拟器启动
注意:暂不支持x86_64模拟器,详见Issue #18。
1.23.0及以上版本使用jEnv管理Java版本(旧版本使用update-alternatives,文档见此处)。
使用jEnv前需加载环境:
. ~/.bash_profile
查看可用Java版本:
jenv versions
设置全局Java 8:
jenv global 1.8
设置当前目录Java版本(会创建.java-version文件):
jenv local 11
构建前确保有足够磁盘空间(镜像大小约10-16GB)。需Docker Engine 19.03+(支持buildx)。
docker buildx build -t android-build-box .
支持三种构建目标(默认complete-flutter):
| 构建目标 | SDK CLI工具 | jEnv | platform-tools | 平台/构建工具 | bundletool | NDK | Fastlane/Rake | Node等 | Flutter |
|---|---|---|---|---|---|---|---|---|---|
| minimal | ✅ | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ |
| complete | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ |
| complete-flutter | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
默认安装最新软件,可通过构建参数指定版本(需设置_TAGGED=tagged):
docker buildx build --target minimal \ --build-arg ANDROID_SDK_TOOLS_TAGGED="tagged" \ --build-arg ANDROID_SDK_TOOLS_VERSION="4333796" \ --build-arg JENV_TAGGED="tagged" \ --build-arg JENV_RELEASE="0.5.6" .
详见专用变更日志。
详见兼容性矩阵。
欢迎通过Pull Request改进镜像。文档修改请以DOCS:为提交前缀,CI配置修改以CI:为前缀。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429