
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本项目提供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获取:https://hub.docker.com/r/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 | 10000 | 扫描新模拟器的频率(毫秒) |
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# 启动主机控制守护进程(运行在端口15037) node scripts/docker/host-control-daemon.js # 或使用自定义设置 node scripts/docker/host-control-daemon.js --port 15037 --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=15037 \ -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 | 15037 | 主机控制守护进程端口 |
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配置指南。
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务