14-12 猫眼后台Docker内容讲解

下面就来构建环境,为了给大家节省时间,我这里这里已经把之前准备的内容都复制到这个目录下了。

至于是怎么复制进来的呢?需要安装这个软件。这样你就可以往服务器做一些拷贝了。

输入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的超时时间。往往第一次懒加载的时候就会这样。

我们再执行一次就好了


链接数据库

之前写过一个测试方法,用来初始化用户

改一下我们的数据库配置文件。代码链接远程的数据库

执行测试方法



再次访问






结束

原文地址:https://www.cnblogs.com/wangjunwei/p/12892263.html