提问人:Youssef Ehab 提问时间:11/15/2023 最后编辑:Youssef Ehab 更新时间:11/20/2023 访问量:26
docker 容器上的 ADB 无法读取连接到主机的 Android 设备
ADB on docker container does not read Android device connected to host
问:
长话短说,我想将我的 Appium android 自动化测试容器化。我已经在容器上下载了所有必需的工具:
- NVM公司
- 节点
- 阿普西姆
- uiautomator2
- 安卓SDK开发工具包
- android-工具-adb
- USB端子
路径已全部设置,环境变量也已设置。ANDROID_SDK_ROOT
这里唯一缺少的是让容器访问我的主机 USB 端口。我不知道该怎么做!我试图遵循 https://github.com/boot2docker/boot2docker/issues/707 但它没有用,正如你所看到的,这是 8 年前的,已被弃用!我还尝试使用参数运行容器。ABD 在运行 时找不到 Android 设备。我读了另一篇博客,说确保杀死主机上的 ADB 服务器,以便容器上的 ADB 服务器可以访问它,也没有工作。我认为一个非常好的选择,如这里 https://github.com/boot2docker/boot2docker/issues/707 所述,肯定会起作用,是将 usb 目录挂载到容器中。但是,我在我的主机上找不到这个目录。它现在在不同的目录下吗?--privileged
abd devices
/dev
/dev/bus/usb
我怎样才能做到这一点?在 Docker 容器上使 ADB 服务器能够访问和读取在 MacOS 主机上的 USB 端口上连接的所有 Android 设备?
答:
0赞
Youssef Ehab
11/25/2023
#1
我能够通过在 docker 文件中设置一个 env 变量来实现这一点。这样,它将连接到我的主机 ADB 服务器,而不是在容器中创建新的服务器。ENV ANDROID_ADB_SERVER_ADDRESS "host.docker.internal"
评论
adb start-server
-p
docker run -d -p 5037:5037 {IMAGE_NAME}