如何使用从另一个docker容器运行在docker容器上的模拟器?
为了在任何jenkins代理中执行我的测试,而不需要任何额外的设置,我想让一切都在Docker中运行 我的第一种方法是使用一个基本映像,其中包含我所需要的所有内容,即我的应用程序代码、AndroidSDK、Flatter、Emulator和一个Emulator映像。遗憾的是,图像大小超过了10GB,所以我决定分担责任:如何使用从另一个docker容器运行在docker容器上的模拟器?,docker,jenkins,docker-compose,android-emulator,adb,Docker,Jenkins,Docker Compose,Android Emulator,Adb,为了在任何jenkins代理中执行我的测试,而不需要任何额外的设置,我想让一切都在Docker中运行 我的第一种方法是使用一个基本映像,其中包含我所需要的所有内容,即我的应用程序代码、AndroidSDK、Flatter、Emulator和一个Emulator映像。遗憾的是,图像大小超过了10GB,所以我决定分担责任: 我的基本映像将只包含Androi sdk。以下图像将从中继承: 图1将我的应用程序安装了一个卷,并为了构建/测试而抖动 图2将运行一个模拟器 这是我的设置的docker组件:
- 我的基本映像将只包含Androi sdk。以下图像将从中继承:
- 图1将我的应用程序安装了一个卷,并为了构建/测试而抖动
- 图2将运行一个模拟器
---
version: '3'
services:
flutter:
build:
args:
- "FLUTTER_CHANNEL=stable"
- "FLUTTER_VERSION=1.2.1"
context: .
dockerfile: DockerfileFlutter
volumes:
- .:/app
working_dir: /app
command: ["flutter", "test"]
emulator:
build:
context: .
dockerfile: DockerfileAndroidEmulator
container_name: "emulator"
privileged: true
extra_hosts:
- "emulator:127.0.0.1"
depends_on:
- flutter
links:
- flutter
command: ["/opt/android-sdk-linux/tools/emulator", "@flutter_emulator", "-no-skin", "-no-audio", "-no-window"]
我面临的问题是,我无法使用正在运行的仿真器,因为当我在服务flatter
中执行adb设备时,我看不到正在服务emulator
中运行的仿真器
我试图通过adb connect进行连接,但不起作用。有没有什么可能的解决方案我遗漏了或者我做错了
提前感谢。需要满足以下几个先决条件:
- adb服务器正在“emulator”容器上运行
adb启动服务器
- adb服务器查看您的模拟器
adb设备
- adb服务器侦听端口5037
- 您可以从“颤振”容器到达此端口-检查docker网络
进一步阅读:需要满足以下几个先决条件:
- adb服务器正在“emulator”容器上运行
adb启动服务器
- adb服务器查看您的模拟器
adb设备
- adb服务器侦听端口5037
- 您可以从“颤振”容器到达此端口-检查docker网络