- 基于springboot+vue 的前后端分离项目
工具:docker
注意:相关映射端口需在云服务器安全组开放
思路:前端通过nginx反向代理进行部署,后端直接启动jar包
- jdk的安装
- 官网下载linux对应版本压缩包
- Oracle_java
- 使用xftp将压缩包上传到云服务器上
- 解压缩
[root@localhost local]# tar -zxvf jdk-8u181-linux-x64.tar.gz
- 和windows下的一样,需要配置环境变量,进入相关文件
[root@localhost local]# vim /etc/profile
- 按i进行修改,添加如下代码
export JAVA_HOME=/usr/local/jdk1.8.0_181 #jdk安装目录 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export PATH=$PATH:${JAVA_PATH}
- 按esc 输入 :wq 进行保存并退出
- 通过命令,让刚才配置的文件生效
[root@localhost local]# source /etc/profile
- 测试是否成功 java -version
安装docker
//首先删除原本的docker,没有的话就不删除
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
//安装依赖源
yum install -y yum-utils
//配置镜像源,这里使用的是国外的,也可用阿里云等等
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
//安装docker
yum install docker-ce docker-ce-cli containerd.io (默认最新版)
//启动docker
systemctl start docker
//测试是否安装成功
docker version
接下来根据项目需求,拉取相关镜像进行部署
这里根据我本次所需的环境进行部署
所需 redis,mysql,nacos,nginx
redis安装
# 创建挂载文件夹
[root@ecs-2e99-0104593 redis]# clear
[root@ecs-2e99-0104593 redis]# cd ./redis
[root@ecs-2e99-0104593 redis]# mkdir conf
[root@ecs-2e99-0104593 redis]# mkdir data
[root@ecs-2e99-0104593 redis]# ls
conf data
[root@ecs-2e99-0104593 redis]#
# 新建redis.conf文件
[root@ecs-2e99-0104593 conf]# touch redis.conf
# 安装并运行redis
docker pull redis
# 对于/usr/local/mydata/redis/data代表外部挂载的目录,需要使用pwd查看你自己的路径,然后替
换为你自己的data、conf目录路径
docker run -p 6379:6379 --name redis -v /usr/local/mydata/redis/data:/data -v /usr/local/mydata/redis/conf/redis.conf:/etc/redis/redis.conf -d redis redis-server /etc/redis/redis.conf
nginx的安装
# 创建挂载文件夹
[root@ecs-2e99-0104593 mydata]# ls
jdk mongo redis
[root@ecs-2e99-0104593 mydata]# mkdir nginx
[root@ecs-2e99-0104593 mydata]# cd ./nginx/
[root@ecs-2e99-0104593 nginx]# ls
[root@ecs-2e99-0104593 nginx]# mkdir html
[root@ecs-2e99-0104593 nginx]# mkdir conf
[root@ecs-2e99-0104593 nginx]# mkdir logs
[root@ecs-2e99-0104593 nginx]#
# 下载并启动Nginx
docker run --name nginx -p 80:80 \
-v /usr/local/mydata/nginx/html:/usr/share/nginx/html \
-v /usr/local/mydata/nginx/logs:/var/log/nginx \
-v /usr/local/mydata/nginx/conf:/etc/nginx \
-d nginx
# 之后vue打包的文件直接放到html目录下即可
nginx的启动过程中可能会遇到挂载问题,主要是关于配置文件.conf的问题
docker logs nginx 查看日志解决具体问题,不行删除,重新拉取镜像
nacos的安装
nacos占用内存过大,服务器跑不起来或着卡死,所以通过-e 来进行配置,限制内存
# 拉取镜像
docker pull nacos/nacos-server:2.0.2
# 单机Nacos配置
docker run -d \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
--name nacos-2.0.2-limit -p 8848:8848 \
--env MODE=standalone \
--env NACOS_SERVER_IP=127.0.0.1 \
-v /mydata/nacos/logs:/home/nacos/logs \
--restart=always \
nacos/nacos-server:2.0.2
mysql的安装
#同样采用挂载卷的方式启动容器,不然会删除容器造成数据丢失
#可参考dockerhub官网
#第一步,先拉取镜像
docker pull mysql:tag (自己选择所需版本)
#启动容器
docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql mysql
#-d:后台启动
#-p:映射端口
#-v:挂载卷
#-e:相关配置环境,这里设置密码
前端项目打包
//打包项目
npm run build
//生成dist目录,将该目录文件全部放到nginx外部挂载的html目录
//启动nginx
docker start nginx
//重启nginx
docker restart nginx
//外网访问测试
ip:映射端口/dist
后端项目打包,上传到服务器
//使用docker开启相关容器,如redis,mysql,nacos
//将jar包上传至服务器,放在自己的目录下就行
//后台方式运行jar包
nohup java -jar admin.jar -Xmx256M > ADMIN_LOG.log &
nohup java -jar gateway-0.0.1-SNAPSHOT.jar -Xmx128M >GATE_WAY.log &
//查看是否运行成功
ps -ef | grep java
//查看运行日志,在当前目录下的nohup.out文件
cat nohup.out
至此,部署完成,访问外网进行测试。