抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

使用maven进行项目打包

打包前的准备:
1.修改项目配置文件中的数据库连接的url信息(以服务器为准)
2.注意项目配置文件的访问端口

将sql文件和jar包上传至服务器

使用scp文件上传命令

1
scp -r 本地文件路径 服务器用户名@ip:服务器文件存放地址

服务器中使用docker操作数据库

1
2
docker exec -it 容器名称 bash
mysql -u root -p

创建项目镜像

1.可以将之前上传的文件指定固定文件夹,例如dockerImage
2.在dockerImage创建dockerfile

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#指定基础镜像
FROM openjdk:8
# 对外暴露端口
EXPOSE 8082
# 作者
MAINTAINER liqi
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD myblog-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

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
2
3
4
5
docker exec -it xxxxxxxxx sh 进入mysql容器。
mysql -uroot -pxxxx 登陆
use database; 切换数据库
source /home/xxxx.sql 导入数据库文件
出现报错 Error:Failed to open file ‘‘xxx.sql’’, error: 2

解决方法:

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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
server {
listen 83;
server_name localhost;

location / {
root /home/project/vue/admin/dist;
index index.html index.htm;
}

location /api/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
add_header Access-Control-Allow-Methods *;
add_header Access-Control-Allow-Origin $http_origin;
proxy_pass http://47.113.193.187:8080/;
}

location ~ .(jpg|png|jpeg|gif|bmp)$ { #可识别的文件后缀
root /usr/local/upload/; #图片的映射路径
autoindex on; #开启自动索引
# expires 1h; #过期时间
}
#error_page 404 /404.html;

# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}

}