docker 容器上的 ADB 无法读取连接到主机的 Android 设备

问题描述 投票:0回答:1

故事很短,我想将我的 Appium android 自动化测试容器化。我已经在容器上下载了所有需要的工具:

  • nvm
  • 节点
  • appium
  • uiautomator2
  • android-sdk
  • android-工具-adb
  • usbutils

路径全部设置完毕,环境变量

ANDROID_SDK_ROOT
也设置完毕。


这里唯一缺少的是让容器访问我的主机 USB 端口。我不知道该怎么做!我尝试遵循 https://github.com/boot2docker/boot2docker/issues/707 但它不起作用,因为你可以看到这是 8 年前并且已弃用!我还尝试使用

--privileged
参数运行容器。 ABD 运行时无法找到 Android 设备
abd devices
。我读过另一篇博客,上面写着确保杀死主机上的 ADB 服务器,以便容器上的 ADB 服务器可以访问它,也不起作用。一个非常好的选择,我认为肯定会像这里提到的那样工作 https://github.com/boot2docker/boot2docker/issues/707 是将
/dev
中的 USB 目录挂载到容器中。但是,我在我的主机上找不到这个目录
/dev/bus/usb
。现在是在不同的目录下了吗?


我怎样才能实现这个目标?使 Docker 容器上的 ADB 服务器能够访问和读取 MacOS 主机上 USB 端口上连接的所有 Android 设备?

docker containers usb adb portforwarding
1个回答
0
投票

我可以通过在 docker 文件中设置环境变量来实现这一点

ENV ANDROID_ADB_SERVER_ADDRESS "host.docker.internal"
。这样它将连接到我的主机 ADB 服务器,而不是在容器中创建一个新服务器。

© www.soinside.com 2019 - 2024. All rights reserved.