使用Docker安装STF--Windows10&&CentOS7篇

最近由于工作需要,异地的研发同学需要远程连接手机进行bug确认、调试等,所以需要安装STF工具完成此项需求。

首先我在windows10上成功搭建并提供了使用,而后为了更好的提供这项服务,申请了虚拟机在CentOS7上也成功搭建并提供了使用。下面将我的安装、部署、使用的步骤详细说明一下,希望有此需求的朋友看到我这篇分享后,能快速搭建使用。

啰嗦几句:

开始准备STF的时候,google、百度一查,安装此工具需要安装很多依赖库、包等,不仅要一个个下载安装,由于操作系统、内核版本的不同,安装依赖包的时候可能还需要安装其他依赖包,就算费了九牛二五之力都安装成功,启动的时候又要先启动数据库、adb、stf,可能又会遇到很多问题。所以我放弃了这种方法,想着是不是还有其他简单易用的方法呢。

之后就看了Docker安装STF这种方式,Docker(自行去了解一下)的安装和部署在windows10、CentOS7下都是很easy的,也比较傻瓜。接下来就是安装部署STF,一查还是要docker pull各种镜像,然后启动,还是一样费事。但是程序猿的分享精神真是很“伟大”的一件事情,在github上我找到了一个分享,简单修改一下配置文件,就可以直接用一个命令来安装部署以及启动STF,并能在浏览器端开始使用。再次很感谢这个上传者https://github.com/nikosch86/stf-poc。

下面开始完整的安装部署、启动使用的流程:

Windows10篇

1. 在Docker官方网站下载docker for windows10的安装包,傻瓜安装(会自动开启Hyper-V服务,windows10自建一个虚拟机作为docker的服务端),成功安装后,开启docker服务

2. 在这里https://github.com/nikosch86/stf-poc下载stf-poc-master文件夹到docker服务所在机器上,要做的修改如下:

    1) .env文件:将ip改成docker服务所在机器的ip

    2) docker-compose.yml文件:两个地方

        adb配置模块:将 - /dev/bus/usb:/dev/bus/usb,改成-D:/dockerdisk/dev/bus/usb:/dev/bus/usb(D:/dockerdisk这个位置随便写,只要是windows上的地址就行,因为连接手机时要使用wifi方式,所以地址可以随便写)

        stf-provider配置模块:command: stf provider --name ....,在其最后添加--allow-remote允许远程访问。

    3)配置好后,win+R打开cmd命令行方式,需要在stf-poc-master文件夹目录下进行,可参考readme。执行docker-compose up -d --build,出现下述展示,说明启动成功

Starting stf-poc-master_adb_1 ... done

Starting stf-poc-master_storage-temp_1 ... done

Starting stf-poc-master_auth_1                ... done

Starting stf-poc-master_triproxy_1    ... done

Starting stf-poc-master_rethinkdb_1            ... done

Starting stf-poc-master_dev-triproxy_1        ... done

Starting stf-poc-master_storage-plugin-image_1 ... done

Starting stf-poc-master_storage-plugin-apk_1  ... done

Starting stf-poc-master_provider_1            ... done

Starting stf-poc-master_migrate_1              ... done

Starting stf-poc-master_processor_1            ... done

Starting stf-poc-master_websocket_1            ... done

Starting stf-poc-master_reaper_1              ... done

Starting stf-poc-master_api_1                  ... done

Starting stf-poc-master_app_1                  ... done

Starting stf-poc-master_nginx_1                ... done

3. 在浏览器中输入ip,回车,提示登陆STF,就可以看到STF界面了。

CentsOS7篇

(CentOS一定是CentOS7,内核版本是3.10.*)以下是官方网站的安装步骤:

    1. 安装所依赖的包,一般都安装了,检查一下即可

yum install -y yum-utils device-mapper-persistent-data lvm2

    2. 配置the stable repository: yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

    3.可选项,默认禁用(我就是禁用,没做修改)

    yum-config-manager --enable docker-ce-edge

    yum-config-manager --enable docker-ce-test

    4. 下载安装docker:yum install docker-ce or yum install docker-ce-版本号

    5. 启动docker:systemctl start docker

    6. 安装docker-compose:curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose

    chmod +x /usr/local/bin/docker-compose //赋予其可执行权限

    7. 将gitbub上他人分享的stf小工具下载到服务器上,修改相应配置文件

        启动前按readme修改文件

        1) 修改.env中的ip、password,为本机的ip,password随意写

        2) 修改docker-compose.yml:在 command: stf provider这一行最后 添加--allow-remote

    8.pull镜像并启动STF:docker-compose up -d --build(需要在stf-poc-master文件夹目录下进行,可参考readme)

    9.启动成功后,去浏览器中输入ip,回车,就能看到STF登陆界面了

使用wifi方式连接手机

    windows10、CentOS7均可使用下述步骤,使用wifi方式连接手机(由于docker中的adb识别不到物理设备usb连接的手机):

        1.在windows笔记本上,使用USB方式连接手机,adb devices可以看到连接的手机

        2.在windows笔记本上,在cmd中,执行adb tcpip 5555    ///这个命令可以将手机的adb程序以wifi的模式再启动,如果看到 restarting in TCP mode port: 5555,则启动成功。

        3.执行命令adb connect <手机ip>,返回“connected to <手机ip>:5555”后,拔掉数据线

        4.进入docker中,首先找到adb的容器ID,执行命令

        【windows10】docker ps -a|findstr adb

        【CentOS】docker ps -a|grep  adb

        d45381f290fe        sorccu/adb:latest            "/sbin/tini -- adb -?"  18 hours ago        Up 2 hours                    5037/tcp                                    stf-poc-master_adb_1

        【windows10、CentOS】docker exec -it d45381f290fe  sh

                                                / # adb devices

                                                List of devices attached

                                                / # adb connect 10.7.44.55

                                                    connected to 10.7.44.55:5555

                                               / # adb devices

                                                List of devices attached

                                                10.7.44.55:5555        device

                连接手机过程中,需要在手机中安装STFService.apk,此时有的手机可能失败,通过provider镜像去查看log,docker logs provider的容器ID。记得每次连接时,手机端需要允许USB调试,即使去点击“允许”

                备注:如果连接失败,重试adb tcpip 5555,adb connect...

                手机离线后重新连接。

手机连接后,浏览器中就能看到已连接的手机。具体STF怎么使用,大家自行google或者官网查看。

备注:小米手机连接时,需要登陆小米账号后,再去做下述步骤。

你可能感兴趣的:(使用Docker安装STF--Windows10&&CentOS7篇)