Linux下使用docker搭建STF(踩坑成功)

自从经历了Mac下docker的失败后,一直在查找缘由,也开始自学docker。为了搞懂docker,还在某东上买了James Turnbull的书《THE DOCKER BOOK》来研究。这里介绍的是使用Linux环境来使用docker,不过也确实是,docker自己跑的就是Linux,索性就在Linux环境下从新搭建了一遍STF,第一次没有成功,又从新pull了镜像从新运行以后,莫名其妙的就成功了。docker

1、安装Dockershell

按照书中的指引,安装以前须要检查一些前提条件:ubuntu

一、内核:检查ubuntu内核的版本:浏览器

$ uname -a
Linux myPC 4.4.0-53-generic #74-Ubuntu SMP Fri Dec 2 15:59:10 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
若是内核版本低就须要更新到新版本:

$ sudo apt-get update

 而后更新Grub启动器来加载新内核: 

$ sudo update-grub

安装完成后重启宿主机:app

$ sudo reboot

二、检查Device Mapper.net

$ ls -l /sys/class/misc/device-mapper
lrwxrwxrwx 1 root root 0 8月   1 09:06 /sys/class/misc/device-mapper -> ../../devices/virtual/misc/device-mapper
 

三、安装Docker

检查主机的Ubuntu发行版本:code

$ sudo lsb_release --codename
Codename:	serena
 

添加Docker的ATP仓库:server

$ sudo sh -c "echo deb https://apt.dockerproject.org/repo ubuntu-serena main > /etc/apt/source.list.d/docker.list

添加Docker仓库的GPG秘钥:blog

$ sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

更新apt源:

$ sudo apt-get update

而后就能够在Ubuntu中安装Docker软件包了:事件

$ sudo apt-get install docker-engine

安装完毕,确认Docker已经安装在Ubuntu中:

$ sudo docker info
Containers: 3
 Running: 3
 Paused: 0
 Stopped: 0
Images: 5
Server Version: 1.12.6
. . .

2、搭建STF

和在Mac中的操做同样,在终端中运行以下代码:

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

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

$ sudo docker run -d --name stf --net host openstf/stf stf local

而后在浏览器中输入localhost:7100:


3、Shell的使用:

以前使用STF自带的shell的时候由于不会用,总感受是端口被占用的问题,今天摸索了一下,发现是原来的指令输入不正确,如今总算好用了。

这个shell和adb里的shell有一点小区别,在终端输入的是adb shell input text 1111,在这里只须要输入input text 1111,问题直接解决。

在这里输入的命令其实就是在终端输入adb shell命令以后进入root以后的命令。

附上shell的一些操做:

点击屏幕的坐标为(300,300)位置: input tap 300 300

向左滑动,从(200,1200)到(800,1200):input swipe 200 1200 800 1200

输入文本:input text na123n<Kh;/sdfsd11

input keyevent事件:

举个栗子:按下电源键:input keyevent 26

其余事件代码:

HOME键:3

返回键:4

音量调大:24

音量调小:25

相机按键(若是有物理相机按键):27

退格:67

菜单(mebu)键:82

搜索:84

播放/暂停:85

中止播放:86

下一首:87

上一首:88