安裝ubuntu系統(tǒng)
- 點(diǎn)擊并按步驟安裝Ubuntu系統(tǒng),并根據(jù)內(nèi)容安裝相應(yīng)內(nèi)容。
- ubuntu自帶的中文真的大寫尷尬,我選擇下載搜狗輸入法,可點(diǎn)擊此處按照教程內(nèi)容進(jìn)行安裝
安裝鏡像
- 拷貝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í)行第一個(gè)7是用戶的權(quán)限,第2個(gè)是用戶組的權(quán)限,第3個(gè)是其他的權(quán)限 )
然后就可以看到load-image.sh變成綠色的了,接著執(zhí)行./load-image.sh
安裝Docker
- 點(diǎn)擊安裝docker,按教程順序執(zhí)行
- 如果是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ī)。 - 如果所有步驟正確執(zhí)行,最后一步會(huì)輸出
hello Docker - 這里要注意的是,安裝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
- 點(diǎn)擊官網(wǎng)按步驟安裝Docker compose
- 下載的過(guò)程可能比較慢,也可以找下載好的小伙伴拷貝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文件
進(jìn)入hosts文件,另起一行添加127.0.0.1 local.twars - 進(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ù)和用戶
- 進(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退出
- 進(jìn)入assembly下執(zhí)行以下命令
$ ./twars.sh rs //如果提示說(shuō)沒有權(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個(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
- 繼續(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)容,去掉注釋!
- 回到assembly目錄下
- docker ps 查看node:5.8是否up,如果node沒有終止就執(zhí)行
docker-compose kill web-api - 執(zhí)行
docker-compose up -d
- 打開瀏覽器
- 訪問(wèn)
http://localhost:8888/,在首頁(yè)點(diǎn)擊注冊(cè)查看驗(yàn)證碼是否成功顯示。 - 填寫相關(guān)信息進(jìn)行注冊(cè),當(dāng)然,現(xiàn)在還不能成功注冊(cè)
- 回到項(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ù)
- 重啟Docker
$ service docker stop
$ service docker start
$ docker-compose up -d
- 重新注冊(cè)賬號(hào)
- 訪問(wèn)
http://localhost:8888/注冊(cè)賬號(hào) - 補(bǔ)全信息后點(diǎn)擊開始答題,這時(shí)會(huì)發(fā)現(xiàn)題出來(lái)了,圖出不來(lái)
- 讓圖片重出江湖
- 到
>web-api>config>config.yml文件下,修改31行的代碼為staticFileServer: 'http://127.0.0.1:8888/fs/' - 哦啦,就醬紫~~