thought一期項(xiàng)目-環(huán)境配置過(guò)程


安裝ubuntu系統(tǒng)

  1. 點(diǎn)擊并按步驟安裝Ubuntu系統(tǒng),并根據(jù)內(nèi)容安裝相應(yīng)內(nèi)容。
  2. ubuntu自帶的中文真的大寫尷尬,我選擇下載搜狗輸入法,可點(diǎn)擊此處按照教程內(nèi)容進(jìn)行安裝

安裝鏡像

  1. 拷貝images文件夾, 下載load-images.sh文件到images下面
  2. 執(zhí)行l(wèi)oad-images.sh腳本
    注:下載load-images.sh后可以看到images文件夾里的load-image.sh是白色的,綠色才是可執(zhí)行的,所以在命令行輸入$chmod 777 load-image.sh
    (7=4+2+1 4 可讀 2 可寫 1 可執(zhí)行第一個(gè)7是用戶的權(quán)限,第2個(gè)是用戶組的權(quán)限,第3個(gè)是其他的權(quán)限 )
    然后就可以看到load-image.sh變成綠色的了,接著執(zhí)行./load-image.sh

安裝Docker

  1. 點(diǎn)擊安裝docker,按教程順序執(zhí)行
  2. 如果是64位機(jī)要注意的是步驟7,應(yīng)該將
    deb https://apt.dockerproject.org/repo ubuntu-xenial main
    修改為
    deb [arch = amd64] https://apt.dockerproject.org/repo ubuntu-xenial main
    因?yàn)檫@里默認(rèn)是32位機(jī)。
  3. 如果所有步驟正確執(zhí)行,最后一步會(huì)輸出hello Docker
  4. 這里要注意的是,安裝docker后,執(zhí)行docker命令是要用sudo權(quán)限的,執(zhí)行以下3條命令可以解決此問(wèn)題:
$ sudo groupadd docker 
將當(dāng)前用戶加入docker組

$ sudo gpasswd -a ${USER} docker

$ sudo service docker restart
重新啟動(dòng)docker服務(wù)

安裝Docker compose

  1. 點(diǎn)擊官網(wǎng)按步驟安裝Docker compose
  2. 下載的過(guò)程可能比較慢,也可以找下載好的小伙伴拷貝docker compose 可執(zhí)行文件文件到 ubuntu的compose-> usr -> local -> bin 下面任意目錄下執(zhí)行:$ chmod +x /usr/local/bin/docker-compose

clone代碼并配置環(huán)境

  1. clone代碼,根據(jù)readme執(zhí)行
$ git submodule init
$ git submodule update
$ git pull
$ git status
$ git submodule update
  1. 修改hosts文件
    進(jìn)入hosts文件,另起一行添加127.0.0.1 local.twars
  2. 進(jìn)入assembly,執(zhí)行以下命令
$ docker-compose up -d mysql  //啟動(dòng)mysql
$ docker ps  //查看當(dāng)前運(yùn)行的容器
$ ./twars.sh ls  //查看數(shù)據(jù)庫(kù)的初始化文件
$ ./twars.sh my  //初始化數(shù)據(jù)庫(kù)和用戶
  1. 進(jìn)入paper-api執(zhí)行以下命令
$ ./gradlew tasks
$ ./gradlew flywaymigrate

這個(gè)時(shí)候執(zhí)行docker ps就可以看到容器中正在運(yùn)行的服務(wù),找到mysql的容器名或容器id,執(zhí)行docker psdocker exec -it 容器名/id bash
就會(huì)進(jìn)入mysql數(shù)據(jù)庫(kù),然后執(zhí)行:

$ mysql -u root -pthoughtworks
$ show databases;  //查看數(shù)據(jù)庫(kù)
$ use BronzeSword  //切換到BronzeSword數(shù)據(jù)庫(kù)
$ show tables  //查看數(shù)據(jù)庫(kù)中的表

上述過(guò)程如果結(jié)果正常輸出即可輸入exit退出

  1. 進(jìn)入assembly下執(zhí)行以下命令
$ ./twars.sh rs  //如果提示說(shuō)沒有權(quán)限那就加上sudo
$ ./twars.sh jk  //需要真正翻墻才可以執(zhí)行成功
  1. 切換至web-api目錄下,打開app.js,注釋下面兩行代碼
var captcha = require('./middleware/captcha');
app.use(captcha(params));
  1. 切換至assembly下
  • 繼續(xù)執(zhí)行docker-compose up -d或者docker-compose up -d web-api接著執(zhí)行docker ps
  • 如果你看到8個(gè)容器,直接進(jìn)入步驟8進(jìn)行操作
  • 如果發(fā)現(xiàn)7個(gè)容器(node沒有啟動(dòng)),就查看一下web-api的日志,docker logs assembly_web-api_1(這里的assembly_web-api_1是web-api對(duì)應(yīng)的容器名)
  • 假如執(zhí)行后后出現(xiàn)Error: Cannot find module 'newrelic'…等等缺少模塊的錯(cuò)誤,切換至web-api目錄下,執(zhí)行npm i,這里友情提醒一下,一定要用npm,不要用cnpm之類的,這是個(gè)坑,你會(huì)發(fā)現(xiàn)后續(xù)執(zhí)行所有命令都沒毛病,然而就是會(huì)出現(xiàn)奇奇怪怪的問(wèn)題!
  • 如果你實(shí)在覺得npm安裝的太慢,執(zhí)行npm config set registry https://registry.npm.taobao.org進(jìn)行換源出來(lái),然后,繼續(xù)使用npm進(jìn)行安裝
  • 回到assembly下重新執(zhí)行:
$ ./twars.sh rs
$ docker-compose up -d
$ docker ps -a
  • 此時(shí)應(yīng)該可以看到node的status是 Up X seconds
  1. 繼續(xù)在assembly目錄下
  • 執(zhí)行docker exec -it assembly_web-api_1 bash進(jìn)入web-api容器
  • 執(zhí)行cd /var/app/到達(dá)此目錄下執(zhí)行以下命令:
$ npm uninstall canvas
$ npm install canvas
  • 如果npm install canvas出錯(cuò)可嘗試修改assembly/twars.sh中將JENKINS_ADDR=192.168.99.100:8088改為JENKINS_ADDR=local.twars:8088
  • 安裝成功會(huì)出現(xiàn)** canvas@1.5.0 invalid **,Ctrl+D退出然后去到web-api/app.js中,找到之前注釋的內(nèi)容,去掉注釋!
  1. 回到assembly目錄下
  • docker ps 查看node:5.8是否up,如果node沒有終止就執(zhí)行docker-compose kill web-api
  • 執(zhí)行docker-compose up -d
  1. 打開瀏覽器
  • 訪問(wèn)http://localhost:8888/,在首頁(yè)點(diǎn)擊注冊(cè)查看驗(yàn)證碼是否成功顯示。
  • 填寫相關(guān)信息進(jìn)行注冊(cè),當(dāng)然,現(xiàn)在還不能成功注冊(cè)
  1. 回到項(xiàng)目下
  • 不能成功注冊(cè)是因?yàn)閙ongo的twars數(shù)據(jù)庫(kù)中不存在configurations表,也不存在相關(guān)記錄
  • 執(zhí)行docker exec -it assembly_mongo_1 bash進(jìn)入mongo容器
  • 執(zhí)行mongo開啟數(shù)據(jù)庫(kù)
  • show dbs查看數(shù)據(jù)庫(kù)
  • use twars切換到twars數(shù)據(jù)庫(kù)
  • show collections查看表可以看到?jīng)]有configurations表
  • db.createCollection("configurations")創(chuàng)建configurations表
  • db.configurations.insert({"registerable":true,"qaContent":""})向表中插入數(shù)據(jù)
  1. 重啟Docker
$ service docker stop   
$ service docker start
$ docker-compose up -d
  1. 重新注冊(cè)賬號(hào)
  • 訪問(wèn)http://localhost:8888/注冊(cè)賬號(hào)
  • 補(bǔ)全信息后點(diǎn)擊開始答題,這時(shí)會(huì)發(fā)現(xiàn)題出來(lái)了,圖出不來(lái)
  1. 讓圖片重出江湖
  • >web-api>config>config.yml文件下,修改31行的代碼為staticFileServer: 'http://127.0.0.1:8888/fs/'
  • 哦啦,就醬紫~~
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容