CentOS7前后端分离项目部署过程Docker+Nginx+Spring Boot+Vue

部署方案

部署方案要达到的效果:前端不用管后端,后端不用管前端,各自往服务器上分别部署即可

部署环境

CentOS7.6+Dcoekr+Nginx+SpringBoot+Vue

此次部署所用工具及文件

数据库管理工具—Navicat Linux终端仿真程序—SecureCRT FTP客户端—FileZilla 前端包—文件夹dist 后端包—jar包springboottest-0.0.1-SNAPSHOT.jar

注意项目中路径问题

后端连接数据库url将localhost改成主机名 前端将数据获取的localhost改成主机名

基本系统环境搭建

Docker安装

保证yum包为最新

yum update

安装docker

yum install docker

配置阿里云镜像加速器

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-EOF
{
  "registry-mirrors": ["https://ahu17w8b.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docke

拉取所需镜像

分别拉去mysql nginx 和用来编译jar包的java:8u111

docker pull mysql
docker pull nginx
docker pull java:8u111

移动前端包和后端包

通过filezilla直接拖动到 /root/test/ 目录下,test是我创建了测试项目目录

MySQL操作

启动mysql容器(MYSQL_ROOT_PASSWORD=数据库密码)

docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

用Navicat连接服务器并导入本地上的数据库数据

Nginx操作

首先我们编写一下nginx.conf用来挂载,配置文件内容需要根据不同的需求适应性更改,我这上面走了不少弯路,废了不少时间(┬_┬)

vim /data/nginx/conf/nginx.conf

启动Nginx

docker run --name nginx -d -p 80:80  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf  -v /data/nginx/logs:/var/log/nginx -v /root/test/dist:/usr/share/nginx/html nginx

运行后端jar包

一条命令即可

docker run -d -p 8181:8181 -v /root/test/springboottest-0.0.1-SNAPSHOT.jar:/root/test/springboottest-0.0.1-SNAPSHOT.jar --name library java:8u111 java -jar /root/test/springboottest-0.0.1-SNAPSHOT.jar

后端只需要更改jar包重启容器即可实现后端更新

运行前端dist包

首先在dist同级目录中创建Dockerfile 内容为

FROM nginx:latest
MAINTAINER zhipeng9802@163.com
COPY dist/ /usr/share/nginx/html

然后在该目录中运行如下命令构建镜像,dicker-vue为镜像名,注意 ‘.’ 这个点不能少

docker build -t docker-vue .

创建该前端容器

docker run -d --name vue -p 80:80 docker-vue

前端只需要更改dist包后重启nginx容器即可实现前端更新,用dist镜像的话需要重新创建新dist包的镜像并运行

至此前后端分离服务器环境全部搭建完毕

感谢网络中很多前辈的知识奉献

经验分享 程序员 微信小程序 职场和发展