docker-compose部署openstf,鉴于openstf停止维护,这里使用github.com/DeviceFarme… 的镜像来部署,并且之前使用openstf/stf镜像,在我这边由于开发板没有触摸屏,导致设备无法连接上,也会报stf启动异常,因为不支持mintouch的缘故,换成devicefarmer/adb:latest后就正常了,有类似问题的可以试试。
我这里只是本地简单测试用,暂时还没有adb远程连接的需求,生成环境中应该使用远程部署较好。 docker-compose.yml
version: "3"
services:
rethinkdb:
container_name: rethinkdb
image: rethinkdb:2.4.2
restart: unless-stopped
volumes:
- "rethinkdb-data:/data"
command: "rethinkdb --bind all --cache-size 2048 --http-port 8090"
migrate:
image: openstf/stf:latest
command: stf migrate
depends_on:
- rethinkdb
adb:
container_name: adb
image: devicefarmer/adb:latest
restart: unless-stopped
volumes:
- "/dev/bus/usb:/dev/bus/usb"
privileged: true
stf:
container_name: stf
image: devicefarmer/stf
ports:
- "7100:7100"
- "7110:7110"
- "7400-7500:7400-7500"
environment:
- TZ='America/Los_Angeles'
- RETHINKDB_PORT_28015_TCP=tcp://rethinkdb:28015
- STF_ADMIN_EMAIL=123@gmail.com
- STF_ADMIN_NAME=123
restart: unless-stopped
command: stf local --adb-host adb --public-ip 10.219.21.4 --provider-min-port 7400 --provider-max-port 7500 --allow-remote
volumes:
rethinkdb-data: {}
访问 http://10.219.21.4:7100 用户名密码任意(这里在生产环境需要用ldap或OAuth2或其他二次开发的认证方式) 启动后,一般通过usb链接上设备,都会自动显示在页面,我有的设备用的是WIFI ADB连接的,所以有时候需要手动执行下 adb connect
docker exec -it <container id> /bin/sh
然后执行
adb connect <deviceId> # 注意在设备上点击允许连接,以及提前开启开发者模式等
宿主机上已有adb 如果宿主机上已安装了adb,docker容器可以直接使用宿主机的adb,此时,把netework模式改成host即可
此时的docker-compose.yml
version: "3"
services:
rethinkdb:
container_name: rethinkdb
image: rethinkdb:2.4.2
restart: unless-stopped
volumes:
- "rethinkdb-data:/data"
command: "rethinkdb --bind all --cache-size 2048 --http-port 8090"
network_mode: host
migrate:
image: openstf/stf:latest
command: stf migrate
depends_on:
- rethinkdb
network_mode: host
stf:
container_name: stf
image: devicefarmer/stf
environment:
- TZ='America/Los_Angeles'
- STF_ADMIN_EMAIL=123@gmail.com
- STF_ADMIN_NAME=123
restart: unless-stopped
command: stf local --adb-host 127.0.0.1 --adb-port 5037 --public-ip 10.219.21.4 --provider-min-port 7400 --provider-max-port 7500 --allow-remote
network_mode: host
volumes:
rethinkdb-data: {}