docker-compose部署openstf

556 阅读2分钟

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: {}