Docker 搭建 STF 真机平台
2021-10-20 本文已影响0人
思念_似水流年
一、拉取相关镜像
# stf 镜像
docker pull devicefarmer/stf:latest
# adb 镜像
docker pull sorccu/adb:latest
#rethinkdb镜像
docker pull rethinkdb:latest
#ambassador 镜像
docker pull openstf/ambassador:latest
#nginx 镜像
docker pull nginx:latest
devicefarmer/stf
目前还在维护,建议拉取该镜像
二、查看已获取到的镜像
ln@ln:~$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 62d49f9bab67 4 weeks ago 133MB
rethinkdb latest 0c4250c5b26a 4 weeks ago 131MB
hello-world latest d1165f221234 2 months ago 13.3kB
openstf/ambassador latest 938a816f078a 8 months ago 8.63MB
devicefarmer/stf latest 91d0ab894aff 9 months ago 958MB
sorccu/adb latest 7123ee61b746 3 years ago 30.5MB
三、STF 容器启动
1. 启动数据库
docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090
2. 启动 adb 服务
docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest
3. 查看虚拟机IP
ifconfig # 查看服务器 ip 地址
root@liunian-VirtualBox:/home/liunian# ifconfig
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:8a:ab:f3:b4 txqueuelen 0 (以太网)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::f1a0:80b4:1ff5:b113 prefixlen 64 scopeid 0x20<link>
ether 08:00:27:00:80:35 txqueuelen 1000 (以太网)
RX packets 39765 bytes 47999986 (47.9 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 10166 bytes 3141915 (3.1 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.2 netmask 255.255.255.0 broadcast 192.168.137.255
inet6 fe80::46d:96cd:6fbe:2d7c prefixlen 64 scopeid 0x20<link>
ether 08:00:27:63:a0:a6 txqueuelen 1000 (以太网)
RX packets 67589 bytes 40431917 (40.4 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 61628 bytes 45632460 (45.6 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (本地环回)
RX packets 498746 bytes 46718769 (46.7 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 498746 bytes 46718769 (46.7 MB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
4. 启动 STF 服务
注意:
- pubic-ip 是虚拟机的 IP
- adb-host 是宿主机的 IP
docker run -d --name stf --privileged=true --net host devicefarmer/stf stf local --public-ip 192.168.137.2 --adb-host 192.168.137.127 --adb-port 5037 --allow-remote
5. 宿主机需要开启 5037 端口
adb nodaemon server -a -P 5037
6. 使用宿主机上连接的设备
stf provider --name virtualBox_ln --min-port 7400 --max-port 7700 --connect-sub tcp://192.168.137.2:7114 --connect-push tcp://192.168.137.2:7116 --group-timeout 20000 --public-ip 192.168.137.2 --storage-url http://192.168.137.2:7100/ --adb-host 192.168.137.127 --adb-port 5037 --vnc-initial-size 600x800 --mute-master never --allow-remote
7. 查看镜像启动情况
ln@ln:~$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
585fb7d89895 devicefarmer/stf "stf local --public-…" 4 seconds ago Up 4 seconds stf
8bc011a06ddd sorccu/adb:latest "/sbin/tini -- adb -…" 7 hours ago Up 27 minutes adbd
d26de594508e rethinkdb "rethinkdb --bind al…" 7 hours ago Up 28 minutes rethinkdb
四、关闭防火墙
只有关闭 ubuntu 的防火墙,宿主机才能访问虚拟机上的服务
ln@ln:~$ systemctl stop firewalld.service
五、访问 STF
http://192.168.137.2:7100/
六、关机后,下次再启动服务
直接使用docker start rethinkdb/adbd/stf来启动服务 或者使用docker stop rethinkdb/adbd/stf来停止服务
可以用 docker rm rethinkdb/adbd/stf来删除容器