14-12 猫眼后台Docker内容讲解
下面就来构建环境,为了给大家节省时间,我这里这里已经把之前准备的内容都复制到这个目录下了。
至于是怎么复制进来的呢?需要安装这个软件。这样你就可以往服务器做一些拷贝了。linux上安装这插件
yum install -y lrzsz
输入rz就可以选择本地的文件了。
sz是拷贝一些东西到本地。
只需要打个压缩包,然后在服务器解压缩就可以了。为了给大家节约时间,就不带着大家一点点去做了。
简单的看一下dockerfile
首先From centos,表示我们底层是centos
这是作者信息
紧接着使用的用户是我们的root
紧接着创建了几个目录,env(环境需要的东西)、workspace(工作空间)、sbin(待执行的文件)
通过命令把jdk的压缩包加压到我们创建的env/jdk目录下
复制film_console下的文件都复制到workspace里面。
把java_home加到path中
最后执行sbin目录下的 entrypoint.sh
所有的构建过程
其实就是我把我所有的工程都拷贝到workspace目录下,
然后安装了一个jdk
启动都是entrypoint里。我们来看下entrypoint
首先我们申明了一个变量
因为我们这次jar包的名字都相对比较复杂。所以这里我们声明了6个变量。这6个变量就是我们jar包的名字。
然后就是分别进入相应的目录下,把jar包跑起来。
jar包跑起来。
最后有个for循环作为我们的主进程,防止我们的docker退出
构建镜像
打一个1.0的版本,最后一个空格+点。让它在当前目录下去选择我们的dockerfile
当然这个镜像很大,只要包含了jdk。包含了centos,基本上就是600M起步了。我们这个镜像大概有900M左右。
提前已经执行过一次了。它已经提前把我们的centos下载好了。因为贷款只有1m。网路差的时候下载centos差不多就7个小时。
如果失败就不断重试,一般早上和中午的网速会好一点。
这是我们之前就下载好的centos
这是我们构建的film-console
在我们的工程里是有一些环境变量的
所以我们这次的dokcer启动和往常的docker启动有一点点差异
为了方便大家记忆,这里给大家写了一个start.sh
mysql的host、port、username、password还有数据库的名称,把这几项定义为我们的环境变量。因为我们两套工程用的是同一个库。所以这里它只需要声明一次就可以 了。
这个是我们控制台镜像的名字
版本号统一用1.0
重点是这块的启动命令
暴露出来的名字就是上面定义的CONSOLE_NAME
--net=host就想单于我们之前写的 -p不过它相当于给我们写了多个,如果我们有多个export的话,它就会一起给我们映射出来。当然我们这里只有8080.所以这里它也值映射出8080.
--restart=always就是当容器如果挂掉了怎么办,它这里就是重启。
-e的参数代表我要在dokcer镜像里面,去输出我们的环境变量。
这个环境变量前面就是名字,后面就是值
这里的环境变量其实就是我们上面声明的
最终我们要启动CONSOLE_NAME VERSION 替换出来就是film-console:1.0 就是要启动这样一个镜像。这个start目前就写了一个就是要给大家好好讲一下。后面在部署其他三个的时候,就把剩下是3个的启动命令放在这。到时候大家基本就能看懂我这里在做什么事情了。
执行start
这样我们的镜像就启动成功了
6个服务就都启动了。
退出
测试业务
把之前用户登陆的信息复制了一份
改成阿里云的服务器地址
这是延迟初始化的时候,超过了hystrix的超时时间。往往第一次懒加载的时候就会这样。
我们再执行一次就好了
链接数据库
之前写过一个测试方法,用来初始化用户
改一下我们的数据库配置文件。代码链接远程的数据库
执行测试方法
再次访问
结束