本篇文章主要介绍将一个完整的 Web 项目(包括数据库、后端、前端)部署到 Docker 中的详细步骤
项目是前后端分离的,后端使用 SpringBoot + JKD17 + MySQL 8;前端使用 Vue + webpack。服务器是跑在 WSL2 上的 Ubuntu 20.04.5
💡 Docker 部署 Web 项目(优化篇)
注意: MySQL 版本要和项目中使用的版本对应
切换到 mysql 目录下,执行以下命令,启动容器。执行成功后会在当前目录下创建 conf、data、logs 三个文件夹
如果需要额外配置 MySQL,可以在 conf 目录下添加 my.cnf 配置文件,然后重新启动容器(命令如下)
my.cnf 配置文件
至此,数据库部署成功。之后可以使用 Navicat 连接数据库将本地数据库中的数据同步过来
- 编写 docker-compose.yaml 文件
- 启动服务
- 验证
至此后端部署成功
执行上面命令,生成 dist 文件夹,上传到服务器 web 目录
前端项目部署到 Nginx 上,需要对 Nginx 进行配置
- 编写 docker-compose.yaml 文件
- 启动服务
- 验证
至此,项目全部部署成功,浏览器访问验证功能
1、每次重启电脑或者 WSL2 后,WSL2 子系统的 IP 地址就会发生改变
- 解决方法:WSL2 固定 IP 地址
附:我自己的 bat 脚本(管理员身份运行)
2、WSL2 固定 IP 地址后,ping 不通外网,Dockerfile 拉取镜像失败
- 解决方法:服务器上执行下面的命令。参考文章