
kaeawc/auto-mobile本项目提供Docker支持,用于在容器化环境中运行AutoMobile,包含所有必要的Android开发工具。
要将此Docker镜像与MCP客户端一起使用,请参阅MCP客户端配置指南获取完整的设置说明。
Claude Desktop快速示例:
json{ "mcpServers": { "auto-mobile": { "command": "docker", "args": ["run", "-i", "--rm", "--init", "--privileged", "--network", "host", "auto-mobile:latest"] } } }
bash# 构建镜像 docker-compose build # 以生产模式运行 docker-compose up auto-mobile # 以开发模式运行(带自动重载) docker-compose up auto-mobile-dev
已发布的镜像可在Docker Hub获取:kaeawc/auto-mobile
bash# 拉取最新版本 docker pull kaeawc/auto-mobile:latest # 拉取特定版本 docker pull kaeawc/auto-mobile:0.0.7 # 拉取主版本.次版本(推荐用于稳定性) docker pull kaeawc/auto-mobile:0.0 # 拉取特定提交 docker pull kaeawc/auto-mobile:main-abc1234
维护者注意:有关发布凭据和工作流配置,请参阅Docker Hub设置指南。
Docker镜像包含:
要包含Android模拟器/系统镜像,请使用以下命令构建:
bashdocker build --platform=linux/amd64 --build-arg ANDROID_INSTALL_EMULATOR=true -t auto-mobile:latest .
bash# 交互shell docker-compose exec auto-mobile bash # 运行测试 docker-compose exec auto-mobile npm test # 运行代码检查 docker-compose exec auto-mobile npm run lint # 检查已连接设备 docker-compose exec auto-mobile adb devices # 构建Android组件 docker-compose exec auto-mobile bash -c "cd android && ./gradlew build"
完整文档请参阅docs/docker.md
--platform=linux/amd64当镜像构建时未包含模拟器(ANDROID_INSTALL_EMULATOR=false),请为您的操作系统使用主机模拟器设置,以便容器可以访问已安装的AVD和运行中的模拟器。
Linux(主机SDK + 容器内模拟器):
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ --network host \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_HEADLESS=true \ -v "$HOME/Android/Sdk:/opt/android-sdk" \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
macOS(主机模拟器,容器通过ADB自动连接):
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
启用AUTOMOBILE_EMULATOR_EXTERNAL=true后,容器会自动连接到运行在host.docker.internal:5555-5585的主机模拟器。自动连接服务每10秒扫描一次模拟器,并在模拟器重启时重新连接。无需手动执行adb connect。
不要将macOS SDK挂载到/opt/android-sdk(Linux容器中无法运行macOS二进制文件)。
自动连接环境变量:
| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_EMULATOR_EXTERNAL | false | 启用外部/主机模拟器模式及自动连接 |
AUTOMOBILE_HOST_GATEWAY | host.docker.internal | 连接主机模拟器的主机名 |
AUTOMOBILE_EMULATOR_SCAN_INTERVAL_MS | *** | 扫描新模拟器的频率(毫秒) |
AUTOMOBILE_EMULATOR_PORT_START | 5555 | 要扫描的第一个模拟器ADB端口 |
AUTOMOBILE_EMULATOR_PORT_END | 5585 | 要扫描的最后一个模拟器ADB端口 |
如需完整ADB命令支持(包括adb emu kill和其他控制台命令),可将容器连接到主机的ADB服务器,而非单个设备端口:
bash# 在主机上,确保ADB服务器正在运行 adb start-server # 使用ADB服务器隧道运行容器 docker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e ANDROID_HOME=/opt/android-sdk \ -e ANDROID_SDK_ROOT=/opt/android-sdk \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -e AUTOMOBILE_ADB_SERVER_HOST=host.docker.internal \ -e AUTOMOBILE_ADB_SERVER_PORT=5037 \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
ADB服务器隧道优势:
emu kill等)| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_ADB_SERVER_HOST | (无) | 主机ADB服务器地址(设置后启用隧道模式) |
AUTOMOBILE_ADB_SERVER_PORT | 5037 | 主机ADB服务器端口 |
要从容器内部启动/停止模拟器和运行SDK命令,请在macOS主机上运行主机控制守护进程:
bash# 启动主机控制守护进程(运行在端口***) node scripts/docker/host-control-daemon.js # 或使用自定义设置 node scripts/docker/host-control-daemon.js --port *** --host 0.0.0.0
守护进程提供JSON-RPC接口,支持:
list-avds - 列出可用AVDstart-emulator - 按AVD名称启动模拟器stop-emulator - 停止模拟器list-running - 列出运行中的模拟器avdmanager - 运行avdmanager命令sdkmanager - 运行sdkmanager命令使用主机控制运行容器:
bashdocker run --platform=linux/amd64 -it --rm --name auto-mobile \ -e AUTOMOBILE_EMULATOR_EXTERNAL=true \ -e AUTOMOBILE_HOST_CONTROL_HOST=host.docker.internal \ -e AUTOMOBILE_HOST_CONTROL_PORT=*** \ -v "$HOME/.android:/home/automobile/.android" \ -v "$HOME/.auto-mobile:/home/automobile/.auto-mobile" \ auto-mobile:latest
| 变量 | 默认值 | 描述 |
|---|---|---|
AUTOMOBILE_HOST_CONTROL_HOST | host.docker.internal | 主机控制守护进程地址 |
AUTOMOBILE_HOST_CONTROL_PORT | *** | 主机控制守护进程端口 |
AUTOMOBILE_HOST_CONTROL_ENABLED | true | 设置为false禁用主机控制集成 |
adb要求adb kill-server && adb start-server--privileged标志运行容器bash# 清理并重建 docker-compose down -v docker-compose build --no-cache docker-compose up
bash# 检查Dockerfile ./scripts/docker/validate_dockerfile.sh # 运行容器结构测试 ./scripts/docker/test_container.sh # 测试主机模拟器访问(自动启动主机模拟器) ./scripts/docker/test_host_emulator_mcp.sh
bash# 构建镜像 docker build --platform=linux/amd64 -it --rm --init auto-mobile:latest # 测试交互 echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2.0","capabilities":{},"clientInfo":{"name":"test","version":"1.0.0"}}}' | docker run --platform=linux/amd64 -i --rm --init auto-mobile:latest
更多帮助,请参阅完整的Docker文档和MCP配置指南。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务