温馨提示:如果有自己的服务器最好不过了,这样部署网项目就可以上线了。没有的话,只能使用localhost 本机访问啦,记得替换 ngixn 中的ip地址、域名为localhost。
1、安装Docker并配置阿里云仓库加速
① 环境查看,选择对应的docker的安装版本:
- docker 帮助文档:https://docs.docker.com/get-started/overview/
2、安装Docker
- 选择linux版本的docker安装教程
2-2、阿里云镜像加速
▪ 登录阿里云官网,点击控制台,找到产品与服务,搜容器镜像服务
▪ 镜像加速器:
▪ 配置使用:
3、安装DockerCompose
(1) 下载
(2) 授权
(3) 验证是否安装成功:
- 前端、后端增加生产环境配置,然后修改:项目主机号、请求路径以及将mysql和redis的主机号修改为docker compose的服务名
1、修改前后端配置文件的项目主机号
前端修改配置访问后端路径,后端改的就是跨域配置允许前端访问的路径
- 前端生产环境配置:
- 后端生产环境配置(跨域配置):
2、修改前后端配置文件的项目请求路径
后端项目暴露的端口是8888,编写docker-compose.yaml时记得暴露
3、后端生产环境的配置把mysql和redis的主机号修改为docker compose的服务名
(1) 前端打包命令:npm run build
- 打包生成了一个dist包
(2) 后端是多环境配置,打包记得把依赖一起打包:
- 记得配置激活的配置环境为 prod,如果忘记在springboot 配置中环境配置了,还可以在制作spirngboot镜像的dockerfile 中指明 生产环境是prod
- 打包记得把依赖一起打包:
接下来:
① 编写构建各个项目模块的Dockerfile
② 编写docker-compose.yaml
③ mysql、redis、nginx的配置
④ 启动dockerCompose编排
⑤ 导入数据[数据库表数据、前端静态web资源]
⑥ 测试访问,并排除错误
1、上传打包生成的jar包,上传到/mnt/docker/ 目录,并修改jar包的包名为 blog_api.jar
2、编写镜像文件 api_dockerfile:
3、构建生成镜像 api:
命令: docker build -f dockerfile路径 -t 自定义镜像名称 .
1、编写 docker-compose.yaml
2、dockercompose 进行编排
★ 前提:mysql、redis、nginx的配置文件配置好后才可以进行编排
1、mysql的配置:
① mysql 服务在docker-compose.yaml 中的编写内容为:
② 挂载mysql的配置文件:
2、redis的配置:
① redis 服务在docker-compose.yaml 中的编写内容为:
-
由于没有挂载配置文件,所有不用挂载redis的配置
3、nginx的配置:
① nginx 服务在docker-compose.yaml 中的编写内容为:
② 挂载nginx的配置文件:
▪ nginx基本配置,编写nginx.conf文件[vim nginx.conf]:
▪ nginx基本配置文件nginx.conf中include了一个mime.types配置文件:
-
上传mime.types配置文件:
- mime.types配置文件: 在nginx安装包的conf目录下,下载一个nginx获取,然后进行上传
- mime.types的上传目录:结合dockercompose中数据卷的挂载点,推断出 /mnt/docker/nginx/
注意:没有自己的服务器,把下面 blog.conf配置 中的域名server_name 改为localhost,并且没有ssl证书,记得把443(https 协议端口号) 的配置去掉,并把80(http协议端口号)rewrite 部分去掉。
▪ nginx配置文件blog.conf
- 记得将配置文件的中文注释去除再复制粘贴。
③ 配置nginx的ssl证书
申请、下载和上传服务器的ssl证书
下载ssl证书:要选择nginx类型的下载
上传nginx的ssl证书:要注意证书文件的名称、证书格式和咱配置在nginx的配置文件保持一致
- 上传ssl证书:
可以启动dockercompose 进行编排啦~
1、导入数据库表的数据
(1) 导入sql文件
① mysql的挂载信息:
② 数据库视图工具navicat 把表导出sql文件:
③ 上传sql文件(文件名:blog.sql):
- 在数据库中创建和 sql文件(blog.sql)对应的数据库名blog
(2) 执行sql文件(创建blog 数据库并导入数据)
- 接下来在docker中执行该sql:
将.sql文件导入数据库命令:mysql -u 用户名 -p 数据库(blog) < 要导入的数据库数据(blog.sql)
- 结果检查
- 如果能查出来结果,那就说明我们的mysql导入sql文件成功了。
- 退出mysql数据库:exit
- 退出mysql容器:exit
(3) 检查mysql的配置
● 编排dockerCompose之后检查docker中mysql的配置是否成功:
- 没有看到报错信息即成功(警告信息可以忽略)
2、导入前端静态web资源
(1) nginx 前端web资源的配置:
(2) 手动压缩前端dist包,上传到 /mnt/shan/blog 目录
- 手动压缩:是为了提高传输速度
- 安装解压缩工具:
- 上传web资源(dist 压缩包)
可以测试排错啦~
(1) 测试:
-
api 模块的测试:访问 https://blog.yilele.site/
● 当我们觉得部署完全搞定的时候,就可以docker-compose up -d 后台启动,这样的话关掉远程连接也能运行了。