OpenSTF手機設備管理平臺-------二次開發

先搭建好STF平臺,正常啓動了,再進行二次開發,因爲二開編譯和啓動都依賴於相關都插件,這樣也預防了在問題發生時,排查插件的問題。

下載STF源碼

進入stf文件目錄:

下載源碼全依賴

bower是npm下的一種browserjs的包管理工具 。

  • npm install -g bower
  • bower -v

檢索stf源碼,安裝依賴插件:bower install --save git://github.com/openstf/stf.git --allow-root

代碼修改

我是在idea修改好了代碼,通過Xftp傳輸代碼的

代碼編譯

安裝編譯插件gulp,它是爲二次開發編譯stf用的

  • 先執行下npm install
  • npm install gulp -g
  • npm install gulp-cli -g

編譯前,清除build文件gulp clean

報錯1:

解決方案:npm install [email protected] --ignore-script

報錯2:

解決方案:npm install yams

編譯源文件:gulp webpack:build

確保stf目錄下存在gulpfile.jswebpack.config.js文件,執行編譯的時候發生以下錯誤,則是缺少了依賴。

以上報錯解決方案:

bower install --save git://github.com/openstf/stf.git --allow-root

最後編譯重啓即可。



如以docker的方式啓動,那麼就要把編譯後的文件,進行docker鏡像打包,然後啓動訪問。

(1)構建鏡像

先在服務器看下是否可以編譯成功,然後看看啓動是否正常,檢測沒有問題之後,再打包鏡像。避免重新打包鏡像。

(2)打包鏡像

編譯好的STF源碼後,基礎STF本身的Dockerfile文件進行調整,分成兩部分構建,這樣使得構建的速度快些。

Dockerfile-base構建語句:

docker build -f Dockerfile-base -t ubuntustfbase . --no-cache --network=host

Dockerfile構建語句:

docker build -f Dockerfile -t second/openstf/stf . --no-cache --network=host

(3)啓動stf

sudo docker run -it --name stf -d --net host second/openstf/stf stf local --public-ip 服務器IP --no-cleanup

查看日誌:

docker logs -f -t --since="2019-11-12" --tail=100 stf

進入容器目錄:

sudo docker exec -ti -u root  stf  bash

(4)檢測設備StfService是否running(一般可忽略)

看下設備是否斷開,如果斷開需要手動啓動stfService插件, 一般無意外,都是正常running,重構鏡像不會影響設備端。

adb -s 設備id shell am start -n jp.co.cyberagent.stf/.IdentityActivity

adb -s 設備id shell am startservice -n jp.co.cyberagent.stf/.Service

 

鏡像文件講解

Dockerfile-base文件內容講解:

 

下載nodejs, 後面使用npm需要用到

下載Stf環境依賴,官方dockerfile文件用以下語句執行:

apt-get -y install libzmq3-dev libprotobuf-dev git graphicsmagick yasm && \

這個很坑,搞了兩三天,一直是提示連不上rethinkdb, 後來直接一個一個安裝纔好,如圖所示

上圖安裝的libzmq, 在自制構建的dockerfile文件中,會報錯以下問題。

可能是版本的問題,這個原因不得知。

所以要在dockerfile文件中,重新安裝npm install zmq

繼續安裝STF依賴的環境graphicsmagick yams pkg-config。

curl ne-tools iputils-ping 是自主安裝的,方便在容器目錄裏面測試IP和接口是否可以ping.

這個鏡像構建好,基本不要動它了,作爲基礎鏡像,構建速度太慢了。

如果有源碼修改,則重新構建dockerfile文件就可以了。

 

Dockerfile文件內容講解:

 

由於 npm 5 使用了新的包管理模式,所以清緩存,要加上--force

鏡像打包成功後,啓動STF訪問即可

發佈了9 篇原創文章 · 獲贊 2 · 訪問量 8033
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章