首页 > 代码库 > 在Linux docker上安装STF

在Linux docker上安装STF

需要解决问题:调研openstf/stf(https://github.com/openstf/stf),搭建docker(https://www.docker.com/)环境。

拆解为:

  1. docker基本使用
  2. stf 如何安装

逐个来看:

1. docker基本使用

  • 理解总体框架

技术分享

  • 理解基本概念:使用中,个人理解主要分清镜像和容器两个的概念。(docker:从入门到实践)

技术分享

  • 基本命令(详细参见docker doc)
docker images //查看本地镜像
docker ps -a //查看本地容器

docker run -it --name <指定容器名> <镜像名>  //create/start 某镜像
docker exec -it <容器名>  指令  //进入某容器,指令一般为/bin/bash

docker stop <容器名>
docker rm <容器名>
docker rmi <镜像名>

docker pull 
docker commit
docker push

2. stf 如何安装

stf 官方文档关于如何install,只说明了mac os 和 windows。mac os使用Linux内核,参照该部分。

mac os:
brew install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config npm install -g stf

brew 为os命令,linux中可使用对应包管理工具,实现以下前提。

技术分享

查看Linux系统,使用对应包管理工具(与系统版本有关)cat /proc/version //linux 内核系统
lsb_release -a //linux 系统版本,各发行厂商在内核基础上封装

//ubuntu sudo apt-get install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config //rethinkdb zeromq protobuf 无法安装

安装rethinkdb,默认源无,需添加 https://www.rosehosting.com/blog/install-rethinkdb-on-ubuntu-14-04/sudo apt-get update
sudo apt-get upgrade
//添加镜像源并更新
source /etc/lsb-release && echo "deb http://download.rethinkdb.com/apt $DISTRIB_CODENAME main" | sudo tee /etc/apt/sources.list.d/rethinkdb.list
wget -qO- http://download.rethinkdb.com/apt/pubkey.gpg | sudo apt-key add -
sudo apt-get update
//实际安装rethinkdb
sudo apt-get install rethinkdb
//验证安装成功
rethinkdb

安装zeromq,镜像源无,需源码编译安装 https://maddigitiser.wordpress.com/2013/05/02/installing-zeromq-on-ubuntu-13-04/

sudo apt-get install libtool autoconf automake uuid-dev build-essential

cd ~

wget https://archive.org/download/zeromq_4.1.4/zeromq-4.1.4.tar.gz

tar zxvf zeromq-3.2.2.tar.gz && cd zeromq-3.2.2

./configure

make && make install 

//验证安装成功  https://gist.github.com/cdjhlee/b8e3c927a01b0948b42d

sudo ldconfig

ldconfig -p | grep zmq

#libzmq.so.4 (libc6,x86-64) => /usr/local/lib/libzmq.so.4

#libzmq.so (libc6,x86-64) => /usr/local/lib/libzmq.so

 

安装protobuf,镜像源无,需源码编译安装  http://blog.csdn.net/xiexievv/article/details/47396725

wget https://github.com/google/protobuf/archive/v3.3.0.tar.gz

tar zxvf v3.3.0.tar.gz

cd protobuf-v3.3.0.tar.gz

./autogen.sh  //生成./configure

./configure --prefix=/usr/local/protobuf  //指定安装目录

make 

make check

make install

//修改环境变量,添加以下内容

vi ~/.bash_profile

####### add protobuf lib path ########

#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/

#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径

export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/

#执行程序搜索路径

export PATH=$PATH:/usr/local/protobuf/bin/

#c程序头文件搜索路径

export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/

#c++程序头文件搜索路径

export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/

#pkg-config 路径

export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/

######################################

//验证安装成功

protoc

安装node,源码安装,make时间较久,40分钟+
sudo chmod -R 755 node
$ cd node
$ sudo ./configure
$ sudo make
$ sudo make install
//验证node
node --version
//npm默认安装,但版本较低,需要手动更新
npm install npm //执行缓慢后报错,添加镜像为国内淘宝镜像后完成安装
//验证npm
npm -v
 

实际安装过程踩坑无数,先记录一二。

问题一:进入docker,未设置root密码
sudo passwd
问题二:安装protobuf,执行autogen报错autoreconf not found
解决:缺少依赖,sudo apt-get install autoconf autogen(https://github.com/horst3180/arc-theme/issues/63)
问题三:源码安装node,git最新版本未pre,非稳定版,执行过程各种问题报错
node download页面,右键复制下载地址,wget稳定版本
问题四:安装linuxbrew后使用brew
install rethinkdb graphicsmagick zeromq protobuf yasm pkg-config,安装protobuf报错python.h文件找不到,实际目录存在该文件(http://blog.csdn.net/hello_orange/article/details/6184420)
这个问题始终没有解决,猜测linuxbrew的问题,纠结很久后源码安装

 

 

在Linux docker上安装STF