部署前我们需要准备如下内容:
使用FinalShell
连接你的CentOS 7服务器;
将群文件里的febs.tar
发送至服务器的\
(根)目录下;
在\
目录下执行命令tar -xvf febs.zip
解开压缩包,你可以在根目录下看到/febs
;
安装docker、docker-compose
为docker换源
JDK的位置放在/febs/third-party/jdk
,我提供了原来的压缩包;
进入上述目录,使用命令解压tar -xvf jdk-8u271-linux-x64.tar.gz
(输到jdk的时候,可以按tab补全)
接下来直接在profile
配置JDK的绝对路径,再手动生效即可:
[root@localhost ~]# vim /etc/profile (若此时没有vim命令,可以使用命令“yum install vim”安装vim)
## ---
## 以下为/etc/profile的文件内容
## 在文件最后添加下面四行内容保存即可
export JAVA_HOME=/febs/third-part/jdk/jdk1.8.0_271
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
[root@localhost ~]#
[root@localhost ~]# source /etc/profile # 让配置文件生效
[root@localhost ~]# java -version # 查看JDK版本
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)
进入/febs/third-party
目录,可以看到里面有一个docker脚本docker-compose.yml
,脚本可以自动化下载镜像、启动容器,具体内容如下:
version: ‘3‘
services:
mysql:
image: mysql:5.7.24 # 指定MySQL版本
container_name: mysql
restart: always # 启动容器时,MySQL容器会自动启动
environment:
MYSQL_ROOT_PASSWORD: 123456 # root密码
ports:
- 3306:3306 # 映射端口
volumes:
- /febs/third-part/mysql/data:/var/lib/mysql # 挂载 MySQL数据
redis:
image: redis:4.0.14
container_name: redis
restart: always
command: redis-server /usr/local/etc/redis/redis.conf --appendonly yes
volumes:
- /febs/third-part/redis/data:/data # 挂载 Redis数据
- /febs/third-part/redis/conf/redis.conf:/usr/local/etc/redis/redis.conf # 挂载 Redis配置
ports:
- 6379:6379
mongo:
image: mongo
container_name: mongodb
restart: always
ports:
- 27017:27017
volumes:
- /febs/third-part/mongodb:/data/db # 挂载 MongoDB数据
在/febs/third-party
目录下,执行命令docker-compose up -d
,docker会自动拉取指定版本的镜像,并按照脚本设定,启动指定容器。等脚本执行完成,使用命令docker ps
可以查看当前正在运行的容器。
使用命令systemctl enable docker
,设置docker服务开机自启,那么每当虚拟机启动时,docker就启动了,DB服务也就启动了。
完成上述步骤,我们在虚拟机已经启动MySQL服务了,接下来我们使用Navicat去连接它。
接下来导入主系统数据,新建一个名称为febs_cloud_base的数据库,导入sql/febs_cloud_base.sql
按照同样的方法,新建一个名称为febs_nacos的数据库,导入sql/febs_nacos.sql
,这里演示步骤省略。
由于Nacos本身也是Java程序,在做这一步前,确保JDK环境已经配置完成了。
进入/febs/third-part/nacos/conf
目录,编辑application.properties
Nacos配置文件。
使用vim application.properties
进入编辑界面,将{xxxxx}
部分替换成你虚拟机的IP地址,例如我这里填写192.168.2.131
。
修改完以后保存退出编辑界面,在FinalShell下面的”命令“工具栏,右击”添加命令 “,添加内容如下:
编辑完成后确定,点击刚刚创建的命令“启动nacos”,即可启动Nacos服务。此时访问http://{虚拟机IP}:8001/nacos/index.html
即可进入Nacos管理页面。账户:febs,密码:123456。
(P.S. 若此时无法进入此页面,请检查防火墙是否启动,若启动则需要关闭,关闭的命令如下)
[root@localhost third-part]# systemctl status firewalld # 检查防火墙是否启动,若为active,即为启动
[root@localhost third-part]# systemctl stop firewalld # 关闭防火墙
[root@localhost third-part]# systemctl disable firewalld # 关闭防火墙开机自启服务
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
至此,配置中心的启动完成。
这一步是启动系统的最后一步。
首先,我们需要为每个微服务组件生成镜像,下面是整个工程在微服务架构中的功能名称。
我们只需要为上述7个组件打包进行即可,下面我以febs-auth
微服务鉴权中心为例,其余6个组件的打包过程是一致的。
进入/febs/febs-auth
目录,目录下有一个名为Dockerfile
的文件,是自动化打包的预设脚本,其中的内容如下:
FROM openjdk:8u212-jre
MAINTAINER SuphxLin kiols6@aliyun.com
COPY febs-auth-2.2-RELEASE.jar /febs/febs-auth-2.2-RELEASE.jar
ENTRYPOINT ["java", "-Xmx512m", "-jar", "/febs/febs-auth-2.2-RELEASE.jar"]
使用命令对目录下的jar包打包,docker build -t febs-auth .
,命令中的“febs-auth”即为镜像的名称,后序的6个镜像,请严格按照文件夹的名字命名,这后序会影响微服务启动使用的docker-compose.yml
。打包过程由Docker自动完成,例如jar包需要的Java依赖,在Dockerfile
中也以及指定了JDK版本,容器会自动创建一个JDK环境。之前换源的目的,也是为了在加快下载容器内的依赖。
以上,即完成了一个镜像的打包,下面贴出其他镜像打包的代码,请到对应的文件夹下执行打包命令:
docker build -t febs-auth .
docker build -t febs-admin .
docker build -t febs-gateway .
docker build -t febs-server-system .
docker build -t febs-server-test .
docker build -t febs-tx-manager .
docker build -t febs-cloud-web .
(P.S. febs目录下还有generator和job两个服务,比较吃内存,我就没有加入docker-compose.yml中,这里也没有打包,如果有兴趣尝试,也可以参照上述的打包方式)
打包完成后,使用命令docker images
,查看所有镜像:
最后,进入febs/febs-cloud/
目录,根据你的虚拟机IP,你需要修改docker-compose.yml
的一些配置,使用命令vim docker-compose.yml
下面配置中所有含有IP地址的,均换成你自己虚拟机的IP地址即可:
version: ‘3‘
services:
febs-admin:
image: febs-admin:latest
container_name: febs-admin
volumes:
- "/febs/log:/log"
command:
- "--nacos.url=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8401:8401
febs-gateway:
image: febs-gateway:latest
container_name: febs-gateway
volumes:
- "/febs/log:/log"
command:
- "--febs-admin=192.168.2.131"
- "--mongo.url=192.168.2.131"
- "--nacos.url=192.168.2.131"
- "--redis.url=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8301:8301
febs-auth:
image: febs-auth:latest
container_name: febs-auth
volumes:
- "/febs/log:/log"
command:
- "--febs-admin=192.168.2.131"
- "--nacos.url=192.168.2.131"
- "--mysql.url=192.168.2.131"
- "--redis.url=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8101:8101
febs-server-system:
image: febs-server-system:latest
container_name: febs-server-system
volumes:
- "/febs/log:/log"
command:
- "--febs-admin=192.168.2.131"
- "--febs-gateway=192.168.2.131"
- "--nacos.url=192.168.2.131"
- "--mysql.url=192.168.2.131"
- "--febs-tx-manager=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8201:8201
depends_on:
- febs-tx-manager
febs-server-test:
image: febs-server-test:latest
container_name: febs-server-test
volumes:
- "/febs/log:/log"
command:
- "--nacos.url=192.168.2.131"
- "--febs-admin=192.168.2.131"
- "--mysql.url=192.168.2.131"
- "--febs-tx-manager=192.168.2.131"
- "--febs-gateway=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8202:8202
depends_on:
- febs-tx-manager
febs-tx-manager:
image: febs-tx-manager:latest
container_name: febs-tx-manager
volumes:
- "/febs/log:/log"
command:
- "--nacos.url=192.168.2.131"
- "--febs-admin=192.168.2.131"
- "--mysql.url=192.168.2.131"
- "--redis.url=192.168.2.131"
environment:
- "TZ=Asia/Shanghai"
ports:
- 8501:8501
- 8888:8888
febs-cloud-web:
image: febs-cloud-web
container_name: febs-cloud-web
volumes:
- "/febs/log:/log"
environment:
- "TZ=Asia/Shanghai"
ports:
- 9527:80
使用命令docker-compose up -d
,自动化启动FEBS-Cloud微服务权限管理系统。
(P.S. 如出现:ERROR: Failed to Setup IP tables: Unable to enable SKIP DNAT rule: (iptables failed: iptables --wait -t nat -I DOCKER -i br-4a3e20ec967f -j RETURN: iptables: No chain/target/match by that name. (exit status 1)),那应该是你刚刚关闭了防火墙,那么你需要使用命令 systemctl restart docker,重启docker服务)
启动后,你需要等待一会儿,等到FinalShell显示的CPU降低后,访问:http://{你虚拟机的IP}:9527,即可登录到FEBS-Cloud微服务权限管理系统,账户:mrbird,密码:123456。
教程结束!
原文:https://www.cnblogs.com/SuPhXLiN/p/14077256.html