采用Docker部署FindYourCandy

前段時間很多技術支持和客戶反饋FindYourCandy的環(huán)境搭建十分麻煩,而且門檻比較高握玛,因此我研究了一下用Docker做部署。Docker玩得不溜甫菠,體積很大挠铲,望高手賜教。

部署方法


Mac或者Windows上部署

  1. 下載安裝Docker Toolbox這里使用VirualBox+Docker的解決方案代替Docker for Mac寂诱,不然Dobot的串口不能映射到Container里面拂苹。Docker Toolbox包含以下內容:

    • Docker CLI client for running Docker Engine to create images and containers
    • Docker Machine so you can run Docker Engine commands from macOS terminals
    • Docker Compose for running the docker-compose command
    • Kitematic, the Docker GUI
    • the Docker QuickStart shell preconfigured for a Docker command-line environment
    • Oracle VM VirtualBox
  2. 配置Docker-Machine(官方為Docker配置好的VM)
    2.1. 虛擬硬盤擴容

    2.1.1. 查看位置
    虛擬硬盤位置

    2.1.2. 擴容虛擬硬盤
    $ docker-machine stop
    $ vboxmanage clonehd "source.vmdk" "cloned.vdi" --format vdi #將原來的硬盤文件由vmdk格式轉成vdi格式
    $ vboxmanage modifyhd "cloned.vdi" --resize 30000 # 將硬件大小重新設置,單位是MB
    $ vboxmanage clonehd "cloned.vdi" "new.vmdk" --format vmdk # 將硬盤文件的格式改回去
    $ vboxmanage showvminfo default # 查看VM的信息痰洒,找到虛擬硬盤所在的SATA位置和UUID瓢棒,Docker官方VM的名字是default 
    ...
    SATA (0, 0): /Users/jomar/.docker/machine/machines/default/boot2docker.iso (UUID: 7dc4f388-537b-    4ad8-84da-6501ed2c74af)
    SATA (1, 0): /Users/jomar/.docker/machine/machines/default/disk.vmdk (UUID: b58a9c93-dc0f-46c2-825e-b646b0fe8c09)
    ...
    $ vboxmanage storageattach default --storagectl "SATA" --port 1 --device 0  --medium none # 從SATA總線上卸載虛擬硬盤
    $ vboxmanage closemedium disk b58a9c93-dc0f-46c2-825e-b646b0fe8c09 # 關閉虛擬硬盤
    $ vboxmanage storageattach default --storagectl "SATA" --port 1 --device 0 --type hdd --medium resized.vmdk # 重新掛載虛擬硬盤
    

    2.1.3. 擴容系統(tǒng)分區(qū)
    2.1.3.1. 下載GParted鏡像
    2.1.3.2. 在VM光驅中掛載該鏡像,并設置為第一順序啟動

    設置啟動順序

    2.1.3.3. 剩下的參考教程

    2.2. 將VM的內存大小設置為5G以上丘喻,F(xiàn)indYourCandy的詞向量庫大小超過2G脯宿。
    2.3.下載帶UVC的VM鏡像到虛擬硬盤所在目錄,覆蓋掉原文件就好泉粉。使用該鏡像才可以正確識別webcam连霉。
    2.4. 設置端口映射

    端口映射

  3. 配置服務

    $ docker-machine start # 啟動VM
    $ docker-machine ssh # ssh登錄VM
    
    $ ls /dev/video* & ls /dev/ttyUSB* 查看相機和Dobot有沒有被VM正常識別
    /dev/video0
    /dev/ttyUSB0
    
    # 啟動SS服務
    # 8123是http代理監(jiān)聽端口,寫死在polipo的配置文件
    # 1080是SS的SOCK5監(jiān)聽端口
    $ docker run -d --name dobot-ss -p 8123:8123 -p 1080:1080 jomarwu/dobot-ss sh -c '/etc/init.d/polipo restart & sslocal -s SS服務器地址 -p SS服務器端口 -b 0.0.0.0 -l 1080 -m SS服務器加密方式 -k SS服務器密碼'
    
    $ docker run -it -p 3389:3389 -p 18000:18000 --privileged jomarwu/dobot-fyc # 啟動配置好FindYourCandy的容器
    $ service xrdp restart # 開啟xrdp服務嗡靡,方便相機標定
    $ export http_proxy="http://172.17.0.2:8123" # 注意區(qū)別SS所在容器的IP
    $ export https_proxy="http://172.17.0.2:8123"
    $ python /root/dobot/FindYourCandy/robot-arm/run.py &
    $ python /root/dobot/FindYourCandy/webapp/run.py &
    

Linux上部署

  1. 下載安裝Docker
  2. 配置服務
    $ ls /dev/video* & ls /dev/ttyUSB* 查看相機和Dobot有沒有被正常識別
    /dev/video0
    /dev/ttyUSB0
    
    # 啟動SS服務
    # 8123是http代理監(jiān)聽端口跺撼,寫死在polipo的配置文件
    # 1080是SS的SOCK5監(jiān)聽端口
    $ docker run -d --name dobot-ss -p 8123:8123 -p 1080:1080 jomarwu/dobot-ss sh -c '/etc/init.d/polipo restart & sslocal -s SS服務器地址 -p SS服務器端口 -b 0.0.0.0 -l 1080 -m SS服務器加密方式 -k SS服務器密碼'
    
    $ docker run -it -p 3389:3389 -p 18000:18000 --privileged jomarwu/dobot-fyc # 啟動配置好FindYourCandy的容器
    $ service xrdp restart # 開啟xrdp服務,方便相機標定
    $ export http_proxy="http://172.17.0.2:8123" # 注意區(qū)別SS所在容器的IP
    $ export https_proxy="http://172.17.0.2:8123"
    $ python /root/dobot/FindYourCandy/robot-arm/run.py &
    $ python /root/dobot/FindYourCandy/webapp/run.py &
    

調試


  1. 用一臺Win電腦遠程登錄讨彼,輸入運行Docker的電腦(注意不是VM歉井,也不是Container)的IP地址
    遠程登錄
  2. 輸入賬號root,密碼123456哈误,遠程登錄到運行FindYourCandy的Container哩至。
    遠程登錄XUbuntu
  3. 調試相機
    3.1. 終端運行
    cd ~/dobot/FindYourCandy/setup/script/
    python camera_tune.py
    

    3.2.調試成功的標準:1. 四個二維碼的綠色框穩(wěn)定出現(xiàn)躏嚎;2. Detection窗口能正確框選目標。
    調試界面
  4. 調試Dobot憨募,根據(jù)提示完成即可紧索。
    cd ~/dobot/FindYourCandy/setup/script/
    python robot_tune.py
    

配置安卓平板


  1. 設置代理,上面已經運行了一個SS服務菜谣,將其設為代理服務器即可珠漂。注意過濾通向FindYourCandy主機的數(shù)據(jù)。
  2. 下載chrome舊版本尾膊,新版本不能獲取麥克風輸入媳危,這里我使用59的版本。
    chrome舊版本
  3. 安裝google服務框架冈敛,不會的百度待笑。
  4. 安裝chrome,將其設置為信任應用抓谴。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末暮蹂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子癌压,更是在濱河造成了極大的恐慌仰泻,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件滩届,死亡現(xiàn)場離奇詭異集侯,居然都是意外死亡,警方通過查閱死者的電腦和手機帜消,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進店門棠枉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人泡挺,你說我怎么就攤上這事辈讶。” “怎么了娄猫?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵荞估,是天一觀的道長。 經常有香客問我稚新,道長勘伺,這世上最難降的妖魔是什么褂删? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮缅帘,結果婚禮上,老公的妹妹穿的比我還像新娘逗栽。我一直安慰自己失暂,他們只是感情好弟塞,可當我...
    茶點故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布决记。 她就那樣靜靜地躺著,像睡著了一般索昂。 火紅的嫁衣襯著肌膚如雪扩借。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天凄杯,我揣著相機與錄音错洁,去河邊找鬼戒突。 笑死,一個胖子當著我的面吹牛导而,可吹牛的內容都是我干的隔崎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼虚缎,長吁一口氣:“原來是場噩夢啊……” “哼钓株!你這毒婦竟也來了陌僵?” 一聲冷哼從身側響起创坞,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤偎谁,失蹤者是張志新(化名)和其女友劉穎携栋,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸯隅,經...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡蝌以,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年跟畅,在試婚紗的時候發(fā)現(xiàn)自己被綠了溶推。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蒜危。...
    茶點故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡虱痕,死狀恐怖,靈堂內的尸體忽然破棺而出辐赞,到底是詐尸還是另有隱情部翘,我是刑警寧澤响委,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布新思,位于F島的核電站,受9級特大地震影響夹囚,放射性物質發(fā)生泄漏。R本人自食惡果不足惜邀窃,卻給世界環(huán)境...
    茶點故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一崔兴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧敲茄,春花似錦位谋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽秆剪。三九已至赊淑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背洁灵。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工苫费, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留双抽,地道東北人百框。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像慎菲,于是被迫代替她去往敵國和親嫁蛇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內容