安裝Docker
- 按照Docker官網(wǎng)的步驟執(zhí)行(要注意自己系統(tǒng)的版本號(hào))
https://docs.docker.com/compose/install/
Hello from Docker!
#安裝成功后看到這句即可
安裝Docker-compose
- 命令行如下順序執(zhí)行
$ curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
$ chmod +x /usr/local/bin/docker-compose
$ docker-compose --version
docker-compose version: 1.8.0
- 執(zhí)行這幾行命令匀谣,使用 Docker時(shí) 不用加
sudo
$ sudo groupadd docker
#將當(dāng)前用戶加入docker組
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart
克隆一期源碼
- 選擇好目錄執(zhí)行
$ git clone git@github.com:thoughtworks-academy/recruiting-system.git
$ git submodule init
$ git submodule update
開始環(huán)境配置
打開hosts文件听盖,單獨(dú)一行添加
127.0.0.1 local.twars
進(jìn)入assembly集灌,按順序執(zhí)行
$ docker-compose up -d mysql
assembly_mysql_1 is up-to-date
$ docker ps
#查看當(dāng)前運(yùn)行的容器,出現(xiàn)mysql:5.7即可
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6827bb303f9e mysql:5.7 "/entrypoint.sh mysql" 19 hours ago Up About an hour 0.0.0.0:3306->3306/tcp assembly_mysql_1
$ ./twars.sh
========= TWARS ===========
0--0^^^^^^^^^^^^\________
\__/||-------||---------~
`` ``
- 用法:(jk|rjk|bkjk|my|rs)
command:
jk 初始化jenkins
rjk 更新jenkins
my 初始化數(shù)據(jù)庫和用戶
rs 重啟所有服務(wù)
bkjk 備份jenkins
$ ls
#查看數(shù)據(jù)庫的初始化文件
assemble.sh* conf/ docker-compose-prod.yml logo nginx/ production.env remote_script twars-jenkins/
ci/ deploy-jenkins.sh* docker-compose.yml mysql-init.sql nodejs/ readme.md test.env twars.sh*
$ ./twars.sh my
#輸入密碼`"thoughtworks"`初始化數(shù)據(jù)庫和用戶
the password of root:
|
- 進(jìn)入paper-api下按順序執(zhí)行
$ ./gradlew tasks
到這步你就可以去吃個(gè)飯了漓骚,因?yàn)椴皇且话愕穆?/p>
$ ./gradlew flywaymigrate
$ docker ps
再次查看當(dāng)前運(yùn)行哪些容器懒叛,至少應(yīng)該有mysql
$ docker exec -it `容器名/ID` bash
#此時(shí)的容器名應(yīng)是 assembly_mysql_1
$ mysql -u root -pthoughtworks
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.11 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
$ show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| BronzeSword |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.00 sec)
$ use BronzeSword
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
$ show tables;
+------------------------+
| Tables_in_BronzeSword |
+------------------------+
| blankQuiz |
| blankQuizSubmit |
| homeworkPostHistory |
| homeworkQuiz |
| homeworkSubmit |
| itemPost |
| loginDetail |
| paper |
| passwordRetrieveDetail |
| quizItem |
| schema_version |
| scoreSheet |
| section |
| sectionQuiz |
| thirdParty |
| userDetail |
| users |
+------------------------+
17 rows in set (0.01 sec)
$ exit
#退出mysql
- 再次進(jìn)入assembly下按順序執(zhí)行
$ ./twars.sh rs
如果提示說沒有權(quán)限那就加上sudo
,然后就又可以去吃頓飯了
- 執(zhí)行成功后訪問
localhost:8888
,可看到登錄頁面,但沒有驗(yàn)證碼,如下圖
初期圖
- 切換到web-api下
$ gedit app.js
用//
注釋這兩行內(nèi)容
var captcha = require('./middleware/captcha');
app.use(captcha(params));
- 切換到assembly下繼續(xù)執(zhí)行
$ docker-compose up -d
assembly_mongo_1 is up-to-date
assembly_mysql_1 is up-to-date
assembly_ambassador_1 is up-to-date
assembly_paper-api_1 is up-to-date
assembly_jenkins_1 is up-to-date
assembly_nginx_1 is up-to-date
Starting assembly_web-api_1
- 切換web-api下執(zhí)行
$ npm i
- 切換到assembly下
$ docker ps -a
#查看隱藏的沒有啟動(dòng)起來的容器
$ docker exec -it assembly_web-api_1 bash
root@ac59478f305a:/#
#輸入 cd /var/app/
$ npm uninstall canvas
npm info it worked if it ends with ok
npm info using npm@3.7.3
npm info using node@v5.8.0
npm info ok
$ npm install canvas
Ctral+d
#退出
- 取消之前在
web-api/app.js
中注釋掉的兩行 - 切換至assembly下
$ docker ps
#查看node : 5.8 是否是 up
如果是up
則執(zhí)行這行命令
$ docker-compose kill web-api
$ docker-compose up -d
- 再次訪問
localhost:8888
,看到驗(yàn)證碼出現(xiàn)即成功沫勿,如下圖
配置成功后的圖
你會(huì)發(fā)現(xiàn)注冊(cè)會(huì)顯示錯(cuò)誤挨约,接著執(zhí)行一下步驟
- 切換至web-api下,順序執(zhí)行
$ docker ps
$ docker exec -it 'mongo容器名/ID' bash
$ mongo
$ show dbs
$ use twars
$ db.createCollection('configurations');
$ db.configurations.insert({"registerable":true,"qaContent":""});
注冊(cè)成功會(huì)后即可跳轉(zhuǎn)至個(gè)人中心界面
- 修復(fù)不能顯示圖片的問題
修改recruiting-system/web-api/config/config.yml
里面的test屬性的值為127.0.0.1
staticFileServer: 'http://127.0.0.1:8888/fs/'
- 切換到assembly
$ docker-compose kill web-api
$ docker-compose up -d
即可看到成功加載出來的圖片
圖片加載成功