一期考试系统环境配置

安装Docker

Hello from Docker!
#安装成功后看到这句即可

安装Docker-compose

  • 命令行如下顺序执行
$ 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
  • 执行这几行命令,使用 Docker时 不用加sudo
$ sudo groupadd docker
#将当前用户加入docker组
$ sudo gpasswd -a ${USER} docker
$ sudo service docker restart

克隆一期源码

  • 选择好目录执行
$ git clone git@github.com:thoughtworks-academy/recruiting-system.git
$ git submodule init
$ git submodule update

开始环境配置

  • 打开hosts文件,单独一行添加
    127.0.0.1 local.twars

  • 进入assembly,按顺序执行

$ docker-compose up -d mysql
assembly_mysql_1 is up-to-date
$ docker ps
#查看当前运行的容器,出现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 初始化数据库和用户
rs 重启所有服务
bkjk 备份jenkins
$ ls
#查看数据库的初始化文件
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"`初始化数据库和用户
the password of root:
|
  • 进入paper-api下按顺序执行
$ ./gradlew tasks 

到这步你就可以去吃个饭了,因为不是一般的慢

$ ./gradlew flywaymigrate
$ docker ps

再次查看当前运行哪些容器,至少应该有mysql

$ docker exec -it `容器名/ID` bash
#此时的容器名应是 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
  • 再次进入assembly下按顺序执行
$ ./twars.sh rs 

如果提示说没有权限那就加上sudo,然后就又可以去吃顿饭了

  • 执行成功后访问localhost:8888,可看到登录页面,但没有验证码,如下图
初期图
  • 切换到web-api下
$ gedit app.js

//注释这两行内容
var captcha = require('./middleware/captcha');
app.use(captcha(params));

  • 切换到assembly下继续执行
$ 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下执行
$ npm i
  • 切换到assembly下
$ docker ps -a
#查看隐藏的没有启动起来的容器
$ 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 则执行这行命令

$ docker-compose kill web-api
$ docker-compose up -d
  • 再次访问localhost:8888,看到验证码出现即成功,如下图
配置成功后的图

你会发现注册会显示错误,接着执行一下步骤

  • 切换至web-api下,顺序执行
$ docker ps
$ docker exec -it 'mongo容器名/ID' bash
$ mongo
$ show dbs
$ use twars
$ db.createCollection('configurations');
$ db.configurations.insert({"registerable":true,"qaContent":""});

注册成功会后即可跳转至个人中心界面

  • 修复不能显示图片的问题
    修改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

即可看到成功加载出来的图片

图片加载成功
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容

  • 林老师给我们每个入职TW的童鞋都带来一套升级computer配置的装备(固态硬盘SSD,8G内存条)开心!but ...
    吧啦啦小汤圆阅读 275评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,100评论 18 139
  • 没有了葡萄架,还能不能听得到牛郎织女的悄悄话? 天上那么多星星,是散落的银河吗? 我也想变成一颗,一直在的一颗, ...
    郑雪莹阅读 171评论 0 0
  • 迷茫是一个很没劲的词,唯一的价值就是表达出自己的状态,我一发现这样一次谈话机会是他汇报得出的结果,我就不爽,因为这...
  • 我坐在倒走的火车上,就这样安静地看着窗外的原野与树林慢慢退去;想想想想,如果有一天,我可以再一次站在你身边,我们会...
    爱看星空的无牙阅读 194评论 0 0