Linux上部署前后端项目
1.使用的环境
名称 | 工具 |
---|---|
Linux | CentOS 7 |
IDE | idea |
项目 | jeecgboot |
docker(windows) | docker desktop |
redis | Redis-x64-5.0.10 |
mysql | 8.0以上 |
nginx | 1.20.2 |
2.配置虚拟机的网络
-
从客户机中更改适配器设置
-
选择Vmware Network Adapter VMnet8,从属性选项中选中Internet协议版本4(TCP/IPv4)
-
IP地址不要和后面配置虚拟机的相同
-
虚拟机网络的配置,选中虚拟机网络编辑器。
-
选中VMent8,点击更改设置。
-
这三个一定要与前面是同一个网段。
-
# 查看网络配置,缺啥补啥,主要是箭头以下,这个IP和前面那个一定要同一网段不同地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33
-
vi /etc/resolv.conf 看一下有没有 nameserver
-
最后重启一下虚拟机的网络就好了
service network restart
-
如果是其他的电脑连接你的虚拟机,会有类似前面的步骤,开一个新的端口,还要关闭虚拟机防火墙
# 查看防火墙状态 systemctl status firewalld # 禁用防火墙 systemctl stop firewalld # 启动防火墙 systemctl start firewalld
-
全部完成之后记得ping一下进行测试
3.将后端程序配置进行修改
-
先去配置文件改一下IP,我是连的自己的电脑的数据库与redis,所以是我自己的IP
-
去maven下先clean在package一下
4.windows docker 配置
-
打开设置找到docker,配置如下
-
添加Edit Configurations…
-
//DockerFile 配置文件 FROM anapsix/alpine-java:8_server-jre_unlimited MAINTAINER jeecgos@163.com RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime RUN mkdir -p /jeecg-boot WORKDIR /jeecg-boot EXPOSE 8080 ADD ./target/jeecg-boot-module-system-2.4.6.jar ./ CMD sleep 60;java -Djava.security.egd=file:/dev/./urandom -jar jeecg-boot-module-system-2.4.6.jar
-
看到这个t1镜像并且idea报运行成功,即运行成功
-
将这个镜像保存到本地
# 先查看镜像 docker images # 保存到本地 docker save 95b07a14ea5a > D:\Docker\images\jeecg-boot.tar
-
使用Xftp上传到虚拟机中
5.MySQL配置
-
在MySQL的mysql数据库下,修改user表中root的数据
use mysql; update user set host="%" where user="root"; select host,user from user;
6.Redis配置
-
去redis的配置文件下,将bind 修改为0.0.0.0,protected-mode 改成no,然后运行该文件,我是在我自己的目录
D:\environment\Redis-x64-5.0.10>redis-server.exe redis.windows.conf
7.在虚拟机上运行后端项目
-
加载项目,去保存的路径下加载。
[root@hadoop docker-images]# docker load < jeecg-boot.tar
-
修改名字
docker tag 95b07a14ea5a jeect-boot:latest
-
运行该镜像
docker run -d -p 8084:8084 --name jeect-boot jeect-boot:latest
-
稍等一下,等容器运行
# 查看日志 docker logs 571d2c4e5a3e
-
日志查看到运行成功后,在浏览器中输入ip端口号查看
-
至此,后端启动完成!!
8.部署nginx
-
可以像之前的后端一样,下载tar包传入docker中,我是直接docker拉取的
docker pull nginx:1.20.2
-
创建挂载目录,不建议在我这目录下,一定要做好目录管理
# 创建挂载目录 mkdir -p /home/nginx/conf mkdir -p /home/nginx/log mkdir -p /home/nginx/html
-
创建nginx容器,先随便创建一个,目的是将配置导出来
# 生成容器 docker run --name nginx -p 80:80 -d nginx:1.20.2 # 将容器nginx.conf文件复制到宿主机 docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf # 将容器conf.d文件夹下内容复制到宿主机 docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d # 将容器中的html文件夹复制到宿主机 docker cp nginx:/usr/share/nginx/html /home/nginx/
-
进入conf目录,将文件备份
-
备份后
-
删除刚刚创建的nginx容器,重新创建并映射文件目录。
# 停止运行docker容器 docker stop 容器ID # 删除已经停止的容器 docker rm 容器ID # 强制删除容器(不管是否运行) docker rm -f 容器ID docker run -d -p 8883:80 --name nginx -v /home/nginx/html:/usr/share/nginx/html -v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /home/nginx/conf/default.conf:/etc/nginx/conf.d/default.conf -v /home/nginx/log:/var/log/nginx nginx:1.20.2
9.将前端项目部署到nginx
-
在前端项目中,找到vue.config.js文件,修改为虚拟机的ip地址,和后端的端口
-
找到.env文件,将NODE_ENV修改成你的配置文件的环境,我这里是dev
-
找到.env.development文件,修改ip以及端口号
-
修改完成后,打包,运行build,前端目录就会生成dist的文件夹
-
打开dist文件夹,将里面的文件复制到虚拟机的/home/nginx/html目录下
-
部署成功!!