使用maven进行项目打包
打包前的准备:
1.修改项目配置文件中的数据库连接的url信息(以服务器为准)
2.注意项目配置文件的访问端口
将sql文件和jar包上传至服务器
使用scp文件上传命令
1 | scp -r 本地文件路径 服务器用户名@ip:服务器文件存放地址 |
服务器中使用docker操作数据库
1 | docker exec -it 容器名称 bash |
创建项目镜像
1.可以将之前上传的文件指定固定文件夹,例如dockerImage
2.在dockerImage创建dockerfile
1 | #指定基础镜像 |
3.制作镜像
1 | docker build -t blog:test . |
-t 参数是指定此镜像的tag名
4.查看镜像
1 | docker images |
5.创建容器并运行
1 | docker run --name bolg_test -p 8081:8082 -d blog:test |
–name 为容器指定名称
-p 指定端口
6.打开docker日志进行监控
1 | docker logs -f 容器名称 |
7.访问
直接浏览器访问: http://你的服务器ip地址:端口名/接口名 即可查看效果
遇到的问题
问题1:
mysql docker容器中导入数据库失败 Failed to open file ‘‘****.sql‘‘, error: 2
1 | docker exec -it xxxxxxxxx sh 进入mysql容器。 |
解决方法:
docker ps //查看mysql容器id
docker cp sql文件路径 mysql容器id:/ 注意 linux中后面要加上:/
再次进入mysql容器—> 切换数据库 运行 source xxxx.sql;*注意这里sql文件不用加路径 *
成功!
问题2:
项目部署到服务器时进行测试图片上传功能,发现文件没有保存到服务器中,但是使用postman测试接口是成功的?
解决方法:
在做图片上传时使用nginx来访问静态资源,在访问时报404错误,原因很简单我忽略了后端项目使用的docker进行部署
我上传的资源都保存在docker容器里,只需要把服务器中的目录和docker容器目录挂载一下就好了。
1 | docker run --name 容器名称 -p 服务器端口:docker容器端口 -v /宿主机目录:/容器目录 镜像名:版本号 |
前后端分离部署项目,前端使用nginx作为静态资源服务器
nginx配置文件内容
1 | server { |