第一期考试系统:环境配置

林老师给我们每个入职TW的童鞋都带来一套升级computer配置的装备(固态硬盘SSD,8G内存条)开心!but 意味着电脑又要回到解放前,开始重装系统,各种装机配置,想想也想哭着笑!

重新装系统后,需要重新装机,参照http://thoughtworks-academy.github.io/linux-guide/zh-hans/

我在装机过程遇到问题请参考:http://www.jianshu.com/p/82ad51275fdf

安装docker

  1. 参考官网:https://docs.docker.com/engine/installation/linux/ubuntulinux/
    (执行命令到:sudo docker run hello-world,结果出现“hello...docker...“即可)
  2. 拷贝images文件夹, 下载load-images.sh文件到images下面

下载load-images.sh后可以看到images文件夹里的load-image.sh是白色的,绿色才是可执行的

所以在命令行输入:
$chmod 777 [load-image.sh](http://load-image.sh/)
(7=4+2+1 4 可读 2 可写 1 可执行第一个7是用户的权限,第2个是用户组的权限,第3个是其他的权限 )

然后就可以看到load-image.sh变成绿色的了接着执行:

 $ ./load-image.sh 
或者执行:$docker load -i assembly_jenkins.tar

如果上面的命令执行出错:

错误为:“ERROR  presscsssing  。。。Invial tar  header 。。。。”
或者执行脚本出错(其他错误可以先在网上找方法)
我建议如果实在找不到方法:就重新拷贝镜像images
然后在执行脚本,安装assembly_jenkins.tar

去项目下查看镜像:

$ cd recruiting-system 
$ docker images
执行docker需要加上sudo的,可以这样弄就不需要使用sudo了:

docker命令跟默认docker daemon创建的unix socket 通讯都需要速冻权限, 这尅通过创建docker组来解决:

$sudo groupadd docker 

 将当前用户加入docker组
$sudo gpasswd -a ${USER} docker

重新启动docker服务
$sudo service docker restart

安装docker compose

参考官网:https://docs.docker.com/compose/install/
更便捷的方法:
拷贝docker compese 配置文件到 ubuntu的compose-> usr -> local -> bin 下面
随便那个目录下执行:$ chmod +x /usr/local/bin/docker-compose

下载项目:

https://github.com/thoughtworks-academy/recruiting-system

修改hosts文件,打开文件,独立一行添加

gedit  /etc/hosts

在打开的记事本中加入下面的:
#linux
127.0.0.1 local.twars

进入项目 :

 cd recruiting-system  
 git pull  
 git status
 git submodule update 

查看所有镜像有没有装好
 docker images  

导入mysql
进入项目的assembly目录下执行:

$docker-compose up -d mysql

查看数据库等
docker  ps  
#结果应该显示mysql 的版本号,如:”mysql:5.7“

查看该命令后面跟什么:
$ ./twars.sh

初始化数据库
$ ./twars.sh  my

进入项目的paper-api目录下执行:

$ cd ../parper-api 
查看任务:
#如果出现错误,如”ERROR:Java-Home is not set and    no ’java‘ command 。。。。“
#说明没有安装JDK,先去安装JDK,然后再来执行./gradlew tasks ,
#查看任务,并且下载gradle,时间比较长哟!
 $ ./gradlew tasks  查看任务(也可以不执行这个)

刷数据库  :
 $ ./gradlew flywayMigrate  

查看数据库mysql 、id、容器名等(看你目前运行了哪些容器):
docker ps

进入数据库:
docker exec -it assembly_mysql_1 bash
# assembly_mysql_1是容器名,是通过docker ps命令查看得到的。

登录mysql数据库(密码为thoughtworks):
mysql -u root -pthoughtworks  

查看数据库:
show databases

创建数据库(一定要加”;“,不加为会报错):
use BronzeSword;

查看数据库中表:
show tables;  
#应该有显示所初始化的表

退出数据库:
$ exit

进入assembly目录下执行:

./twars.sh rs          如果提示说没有权限那就加上sudo
#(如果网不好,可以找已经下载好的同学的电脑当做服务器,通过端口号访问她的电脑,获取她已经下载的东西)
./twars.sh jk          需要真正翻墙才可以执行成功(也可以不执行这个)

切换到web-api下

gedit app.js

注释下面两行
var captcha = require('./middleware/captcha');
app.use(captcha(params));

在assembly下执行

$ docker-compose up -d或者docker-compose up -d web-api
$ docker ps -a 查看隐藏的没有活起来的容器

如果出现node:5.8STATUSExited (1) X seconds ago的提示,那就查看 docker log
项目根目录下:

$ docker logs assembly_web-api_1 (assembly_web-api_1只是针对我所出现的问题而言的)

执行后提示Error: Cannot find module 'newrelic'…
解决Error切换到web-api下执行: $ npm i
回到assembly下重新执行:$ ./twars.sh rs
$ docker-compose up -ddocker ps -a

此时应该可以看到node的status是 Up X seconds

切换回assembly下执行

docker exec -it assembly_web-api_1 bash
出现“root@e122f1d0af63:/#”root@e122f1d0af63:/# cd /var/app/

进入到“root@e122f1d0af63:/var/app#”继续执行:
root@e122f1d0af63:/var/app#  npm uninstall canvas
root@e122f1d0af63:/var/app#  npm install canvas

如果出现** canvas@1.5.0 invalid **

Ctrl+D退出
然后去到web-api下,将app.js中注释取消

继续在assembly下执行

docker ps 查看node:5.8是否up
docker-compose kill web-api 
docker-compose up -d

访问http://localhost:8888/查看
如:

成功的样子

在首页点击注册查看验证码是否成功显示:


登录页面的验证码也成功显示

解决注册的问题

#由于在注册的时候,无法注册成功,可以在控制台的Network中看到相应的错误,可以知道是因为代码中的数据没有被读入数据库,所以需要手动从容器中进入数据库,修改数据库,将那条数据(查看日志去代码中找到的)手动加入数据库

由于请求是先发给nginx,所以去nginx,在进入conf.d
里面的代码有一个协议:”proxy_pass http://web-api:3000

Paste_Image.png

所以去查看web-api日志:
查看assembly_web-api_1容器的日志:

$ docker logs  容器名字(如:assembly_web-api_1)或者容器的id
# docker logs assembly_web-api_1

日志中的错误

日志中的错误提示是在项目目录:
web-api/controllers/register-controller.js:190行:25列

去项目中找


项目目录web-api/controllers/register-controller.js:190行:25列

点到registerable, 两次ctrl B ,ctrl B后:

Paste_Image.png

发现是由数据库configuration产生,找到


Paste_Image.png

点到目录,ctrl B,就到定义Configuration的文件

Paste_Image.png

依然在web-api下面:


Paste_Image.png
要写入数据库的内容

讲这条数据复制后添加到数据库,具体步骤看下面

#查看容器
$ docker ps

#进入mongo容器
$ docker exec -it mongo的id  bash
# 如:$ docker exec -it c6258a bash
运行$docker ps 后显示的内容

进入数据库(如下图):

$ mongo
> show dbs

#使用数据库twars
>use twars

#创建集合configurations
>db.createCollection("configurations")

#给集合configurations插入一条数据(这条数据从代码中复制得来)
>db.configurations.insert({"registerable":true,"qaContent":""})
从容器中进入数据库
执行结果

然后再去注册就好可以注册成功,进入个人中心页面:

Paste_Image.png
查看docker日志

$ docker logs id(容器的id)

题目不能出来图片的解决:

Paste_Image.png

修改下面文件中的一行代码:


Paste_Image.png

将如下第31行代码:


Paste_Image.png

修改为:

Paste_Image.png

进入assembly ,从新启动服务器:

$ docker-compose kill 
$ docker-compose up -d

刷新页面就可以了

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

推荐阅读更多精彩内容

  • 安装ubuntu系统 点击并按步骤安装Ubuntu系统,并根据内容安装相应内容。 ubuntu自带的中文真的大写尴...
    恐怕是小珠桃子阅读 165评论 0 0
  • 安装Docker 按照Docker官网的步骤执行(要注意自己系统的版本号)https://docs.docker....
    半生不熟_阅读 606评论 0 1
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,637评论 18 139
  • 今天,与一位朋友说笑。她对我说有关于男生的话题,然后我就笑话说:你一天到晚谈论的都是男生。突然我想起来,说了一句:...
    miss琴先生阅读 366评论 0 1
  • 穷是分程度的,也是分种类的。一种是身穷,另一类则是心穷。心穷是骨子里的,是根植在内心里的潜在病毒。 身穷久了,心便...
    Ji_Ahn阅读 288评论 0 0