安裝ubuntu系統(tǒng)
- 點擊并按步驟安裝Ubuntu系統(tǒng)呆细,并根據(jù)內(nèi)容安裝相應(yīng)內(nèi)容型宝。
- ubuntu自帶的中文真的大寫尷尬,我選擇下載搜狗輸入法侦鹏,可點擊此處按照教程內(nèi)容進行安裝
安裝鏡像
- 拷貝images文件夾诡曙, 下載load-images.sh文件到images下面
- 執(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í)行第一個7是用戶的權(quán)限,第2個是用戶組的權(quán)限劝萤,第3個是其他的權(quán)限 )
然后就可以看到load-image.sh變成綠色的了渊涝,接著執(zhí)行./load-image.sh
安裝Docker
- 點擊安裝docker,按教程順序執(zhí)行
- 如果是64位機要注意的是步驟7床嫌,應(yīng)該將
deb https://apt.dockerproject.org/repo ubuntu-xenial main
修改為
deb [arch = amd64] https://apt.dockerproject.org/repo ubuntu-xenial main
因為這里默認是32位機跨释。 - 如果所有步驟正確執(zhí)行,最后一步會輸出
hello Docker
- 這里要注意的是厌处,安裝docker后鳖谈,執(zhí)行docker命令是要用sudo權(quán)限的,執(zhí)行以下3條命令可以解決此問題:
$ sudo groupadd docker
將當(dāng)前用戶加入docker組
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart
重新啟動docker服務(wù)
安裝Docker compose
- 點擊官網(wǎng)按步驟安裝Docker compose
- 下載的過程可能比較慢阔涉,也可以找下載好的小伙伴拷貝docker compose 可執(zhí)行文件文件到 ubuntu的compose-> usr -> local -> bin 下面任意目錄下執(zhí)行:$ chmod +x /usr/local/bin/docker-compose
clone代碼并配置環(huán)境
- clone代碼缆娃,根據(jù)readme執(zhí)行
$ git submodule init
$ git submodule update
$ git pull
$ git status
$ git submodule update
- 修改hosts文件
進入hosts文件捷绒,另起一行添加127.0.0.1 local.twars
- 進入assembly,執(zhí)行以下命令
$ docker-compose up -d mysql //啟動mysql
$ docker ps //查看當(dāng)前運行的容器
$ ./twars.sh ls //查看數(shù)據(jù)庫的初始化文件
$ ./twars.sh my //初始化數(shù)據(jù)庫和用戶
- 進入paper-api執(zhí)行以下命令
$ ./gradlew tasks
$ ./gradlew flywaymigrate
這個時候執(zhí)行docker ps
就可以看到容器中正在運行的服務(wù)贯要,找到mysql的容器名或容器id暖侨,執(zhí)行docker psdocker exec -it 容器名/id bash
就會進入mysql數(shù)據(jù)庫,然后執(zhí)行:
$ mysql -u root -pthoughtworks
$ show databases; //查看數(shù)據(jù)庫
$ use BronzeSword //切換到BronzeSword數(shù)據(jù)庫
$ show tables //查看數(shù)據(jù)庫中的表
上述過程如果結(jié)果正常輸出即可輸入exit
退出
- 進入assembly下執(zhí)行以下命令
$ ./twars.sh rs //如果提示說沒有權(quán)限那就加上sudo
$ ./twars.sh jk //需要真正翻墻才可以執(zhí)行成功
- 切換至web-api目錄下崇渗,打開app.js字逗,注釋下面兩行代碼
var captcha = require('./middleware/captcha');
app.use(captcha(params));
- 切換至assembly下
- 繼續(xù)執(zhí)行
docker-compose up -d
或者docker-compose up -d web-api
接著執(zhí)行docker ps
- 如果你看到8個容器,直接進入步驟8進行操作
- 如果發(fā)現(xiàn)7個容器(node沒有啟動)宅广,就查看一下web-api的日志葫掉,
docker logs assembly_web-api_1
(這里的assembly_web-api_1是web-api對應(yīng)的容器名) - 假如執(zhí)行后后出現(xiàn)Error: Cannot find module 'newrelic'…等等缺少模塊的錯誤,切換至web-api目錄下跟狱,執(zhí)行
npm i
挖息,這里友情提醒一下,一定要用npm,不要用cnpm之類的兽肤,這是個坑套腹,你會發(fā)現(xiàn)后續(xù)執(zhí)行所有命令都沒毛病,然而就是會出現(xiàn)奇奇怪怪的問題资铡! - 如果你實在覺得npm安裝的太慢电禀,執(zhí)行
npm config set registry https://registry.npm.taobao.org
進行換源出來,然后笤休,繼續(xù)使用npm進行安裝 - 回到assembly下重新執(zhí)行:
$ ./twars.sh rs
$ docker-compose up -d
$ docker ps -a
- 此時應(yīng)該可以看到node的status是 Up X seconds
- 繼續(xù)在assembly目錄下
- 執(zhí)行
docker exec -it assembly_web-api_1 bash
進入web-api容器 - 執(zhí)行
cd /var/app/
到達此目錄下執(zhí)行以下命令:
$ npm uninstall canvas
$ npm install canvas
- 如果npm install canvas出錯可嘗試修改assembly/twars.sh中將
JENKINS_ADDR=192.168.99.100:8088
改為JENKINS_ADDR=local.twars:8088
- 安裝成功會出現(xiàn)** canvas@1.5.0 invalid **尖飞,Ctrl+D退出然后去到web-api/app.js中,找到之前注釋的內(nèi)容店雅,去掉注釋政基!
- 回到assembly目錄下
- docker ps 查看node:5.8是否up,如果node沒有終止就執(zhí)行
docker-compose kill web-api
- 執(zhí)行
docker-compose up -d
- 打開瀏覽器
- 訪問
http://localhost:8888/
闹啦,在首頁點擊注冊查看驗證碼是否成功顯示沮明。 - 填寫相關(guān)信息進行注冊,當(dāng)然窍奋,現(xiàn)在還不能成功注冊
- 回到項目下
- 不能成功注冊是因為mongo的twars數(shù)據(jù)庫中不存在configurations表荐健,也不存在相關(guān)記錄
- 執(zhí)行
docker exec -it assembly_mongo_1 bash
進入mongo容器 - 執(zhí)行
mongo
開啟數(shù)據(jù)庫 -
show dbs
查看數(shù)據(jù)庫 -
use twars
切換到twars數(shù)據(jù)庫 -
show collections
查看表可以看到?jīng)]有configurations表 -
db.createCollection("configurations")
創(chuàng)建configurations表 -
db.configurations.insert({"registerable":true,"qaContent":""})
向表中插入數(shù)據(jù)
- 重啟Docker
$ service docker stop
$ service docker start
$ docker-compose up -d
- 重新注冊賬號
- 訪問
http://localhost:8888/
注冊賬號 - 補全信息后點擊開始答題,這時會發(fā)現(xiàn)題出來了琳袄,圖出不來
- 讓圖片重出江湖
- 到
>web-api>config>config.yml
文件下江场,修改31行的代碼為staticFileServer: 'http://127.0.0.1:8888/fs/'
- 哦啦,就醬紫~~