为了在任何Jenkins代理上执行我的测试而不需要额外设置,我希望一切都在Docker中运行。 我的第一个方法是使用一个包含所有所需内容的基础映像,即我的应用程序代码、Android SDK、Flutter、模拟器和模拟器映像。不幸的是,映像大小超过了10 GB,因此我决定分散责任:
- 我的基础映像将仅包含Androi sdk。以下映像将从它继承: - 映像1将具有我的应用程序,并挂载一个卷以及Flutter以进行构建/测试。 - 映像2将运行一个模拟器。
这是我的设置的docker-compose:
- 我的基础映像将仅包含Androi sdk。以下映像将从它继承: - 映像1将具有我的应用程序,并挂载一个卷以及Flutter以进行构建/测试。 - 映像2将运行一个模拟器。
这是我的设置的docker-compose:
---
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"]
我面临的问题是,我无法使用正在运行的模拟器,因为当我在flutter
服务中执行adb devices
时,我看不到正在emulator
服务中运行的模拟器。
我尝试通过adb connect
连接,但是这并没有起作用。是否有可能我错过了任何可能的解决方案或者我做错了什么?
提前感谢您的帮助。