Docker+STF在ubuntu下測試環境搭建(詳細搭建步驟及踩坑記錄)

1、什麼是OpenSTF?

STF又稱OpenSTF,它是一個手機設備管理平臺,能夠對手機進行遠程管理、調試、遠程手機桌面監控等操做。這個系統相似於目前很流行的雲測服務好比Testin,雖然網頁上提供的設備很像模擬器中的設備,可是實際上都是真機。php

OpenSTF是使用nodejs和angularjs開發,遵循apache licene2.0開源協議,用戶能夠對源碼進行修改發佈。(源碼地址:https://github.com/openstf)node

2、STF的功能

       一、 在Web上支持管理上百個android設備。
       二、 支持Android多個版本(2.3.3 ~ 9.0),並且不須要root。
       三、 實時屏幕操做和顯示。
       四、 支持adb connnect遠程鏈接調試。
       五、 能夠從PC機鍵盤輸入到遠程的android設備中。
       六、 安裝卸載APK。
       七、 android設備信息的展現(如:網絡狀態、MIME、android版本、手機型號等等)。
       八、 遠程開關機、遠程開關WIFI、截屏、LogCat等等。android

3、STF環境搭建

1.搭建準備

VMware workstation、Ubuntu鏡像文件(http://mirrors.melbourne.co.uk/ubuntu-releases/)目前做者選擇的是18.10的ubuntu-18.10-desktop-amd64.isonginx

2.環境搭建

①詳細搭建ubuntu虛擬環境做者不在這裏詳細介紹,固然還有Linux搭建JDK、Android SDK環境,此處給出國內下載地址,讀者能夠自行下載安裝配置(http://tools.android-studio.org/index.php/sdk/)。git

②安裝dockerangularjs

默認ubuntu虛擬環境已經搭建好:github

命令行以下:docker

更新軟件:sudo apt-get update數據庫

安裝:sudo apt-get install docker(這裏可能會報各類依賴的錯誤,按照提示apt install -f 依賴包、或者按照提示解決--fix-missing便可)apache

安裝:sudo apt-get install docker.io

查看docker 鏡像 :sudo docker images(這邊因爲還沒安裝任何鏡像,列表暫時爲空)

③從docker上拉取STF相關的鏡像

備註:拉取鏡像時,因爲國內某些緣由可能拉取的比較慢,做者推薦使用aliyun鏡像加速器(又快還不要錢,好產品廣告一波),可登錄阿里雲官網(https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)根據詳細說明配置加速器。

 

STF鏡像:sudo docker pull openstf/stf:latest

android adb 鏡像:sudo docker pull sorccu/adb:latest 

rethinkdb鏡像:sudo docker pull rethinkdb:latest

openstf鏡像:sudo docker pull openstf/ambassador:latest

nginx 代理鏡像:sudo docker pull nginx:latest 

查看已經拉取的docker鏡像:sudo docker images

④修改虛擬機網絡設置

虛擬機頂部點擊「編輯」——「虛擬網絡編輯器」

選擇VMnet0 選擇橋接模式

虛擬機頂部點擊「虛擬機」——「設置」

選擇橋接模式

 更改ip:sudo  vi  /etc/network/interfaces

設置DNS文件:vi /etc/resolv.conf 輸入192.168.43.XXX,網關要和上圖同樣,因爲這是一次性的,也就是重啓以後就會失效,因此咱們要去修改下啓動文件

修改啓動腳本: vi /etc/rc.local 輸入 echo  "nameserver 192.168.43.XXX"  >> /etc/resolv.conf,網關要一致

啓動配置文件:/etc/init.d/networking restart

這裏可能會報錯:

 root@michael-virtual-machine:/home/michael# /etc/init.d/networking start

[....] Starting networking (via systemctl): networking.serviceJob for networking.service failed because the control process exited with error code.
See "systemctl status networking.service" and "journalctl -xe" for details.
failed!

這裏咱們使用這個嘗試:

sudo service network-manager restart

檢驗:

ping 物理機IP地址,能夠ping通

⑤啓動鏡像(注意有前後順序)

先啓動一個數據庫:

docker run -d --name rethinkdb -v /srv/rethinkdb:/data --net host rethinkdb rethinkdb --bind all --cache-size 8192 --http-port 8090

再啓動adb service:

docker run -d --name adbd --privileged -v /dev/bus/usb:/dev/bus/usb --net host sorccu/adb:latest

再啓動stf 啓動的時配置的IP地址爲你虛擬機橋接的網址:

docker run -d --name stf --net host openstf/stf stf local --public-ip   192.168.43.55

查看 啓動的docker鏡像 命令:

sudo docker ps -a

⑥大功告成:

虛擬機中輸入:192.168.43.23:7100

用戶名:隨意輸入

郵箱:符合郵箱格式便可

 

4、尾聲

若是重啓完虛擬機發現沒法聯網:

1、網絡從新設置

1.在VMWare中的編輯菜單中,選擇「虛擬網絡編輯器」,還原設置,而後選中VMnet0,將其設爲橋接

2.接下來設置剛安裝好的Ubuntu虛擬機,將網絡適配器選爲自定義VMnet0

3.啓動虛擬機系統Ubuntu,在系統圖形界面中,選擇網絡設置,指定IP4的網絡地址及DNS

2、重啓docker 

1.切換到root用戶: su root

2.設置開機自動啓動docker服務:systemctl enable docker

3.啓動docker:systemctl start docker

4.此時重啓docker後images會所有退出(sudo docker ps -a  鏡像的STATUS應該所有是EXITED),須要重啓全部鏡像(stf、adbd、rethinkdb)

5.啓動stf :sudo docker start stf

6.啓動adbd:sudo docker start adbd

7.啓動rethinkdb:sudo docker start rethinkdb

相關文章
相關標籤/搜索