Docker 部署
环境说明
README
下方为本项目部署所需运行环境,请注意检查您的环境是否与本项目所需一致,以减少环境引起的问题。
运行环境 | 演示环境版本 | 最低版本 | 安装教程 |
---|---|---|---|
Docker | 24.0.7 | 19.x+ | 《CentOS 安装 Docker》 |
Docker Compose | 2.23.0 | 《CentOS 安装 Docker Compose》 |
项目打包
后端
在 continew-admin
根目录下打开终端,输入下方命令进行后端打包。
mvn clean package
等待打包完成,continew-admin/continew-admin-webapi/target/app
目录下的内容即为后端项目部署物料,结构如下:
app
├─ bin(核心程序)
│ └─ continew-admin.jar
├─ config(配置文件)
│ ├─ application.yml
│ ├─ application-dev.yml(dev 环境配置文件,可自行删除)
│ └─ application-prod.yml(生产环境配置文件)
└─ lib(依赖 jar)
随后,将 app
目录下的所有内容复制到 continew-admin/docker/continew-admin
目录下。
更改打包结构
v1.3.0 开始,对项目打包结构进行了拆分优化。如果你想要原来的结构,即将依赖、配置文件等打包为一个 jar 包,可以修改 continew-admin-webapi/pom.xml
中的构建配置。
<build>
<plugins>
<!-- Spring Boot 打包插件(将 Spring Boot Maven 应用打包为可执行的 jar 包) -->
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
前端
ENV 配置简述
- 如果接口和前端同域名,如通过
/api
去访问后台接口,就配置 VITE_API_PREFIX = '/api',然后在 nginx 做/api
路径反代到后端 - 如果接口和前端不同域名,如通过
http://api.xxx.com
去访问后台接口,就配置 VITE_API_BASE_URL='http://api.xxx.com',然后在 nginx 添加 server 配置反代到后端
在 continew-admin-ui
目录下打开终端,输入下方命令进行前端打包。
pnpm build
等待打包完成,continew-admin-ui/dist
目录下的内容即为前端项目部署物料。随后,将 dist
目录下的所有内容复制到 continew-admin/docker/continew-admin/html
目录下。
执行完前面的内容之后,此时的 continew-admin/docer
部署目录结构应如下:
docker
├─ continew-admin(ContiNew Admin 部署目录及后端容器挂载目录)
│ ├─ bin
│ ├─ config
│ ├─ lib
│ └─ html
├─ nginx(Nginx 容器挂载目录)
│ └─ conf
│ └─ nginx.conf
├─ redis(Redis 容器挂载目录)
│ ├─ conf
│ │ └─ redis.conf
│ └─ data
└─ docker-compose.yml(Docker Compose 部署脚本)
修改配置
在上传部署物料前,我们再来做好部署前的配置修改工作。
修改 docker-compose.yml
在 docker/docker-compose.yml
中,根据实际需要修改如下配置。
- MySQL 配置
MYSQL_ROOT_PASSWORD
:Root 用户密码 必选MYSQL_USER
:自定义数据库用户名 可选MYSQL_PASSWORD
:自定义数据库用户密码 可选
- Redis 配置
--requirepass
:Redis 密码 必选
- ContiNew Admin Server 配置
DB_HOST
:MySQL 地址 可选DB_PORT
:MySQL 端口号 可选DB_NAME
:MySQL 数据库名称 可选DB_USER
:MySQL 用户名 必选DB_PWD
:MySQL 密码 必选REDIS_HOST
:Redis 地址 可选REDIS_PORT
:Redis 端口号 可选REDIS_PWD
:Redis 密码 必选REDIS_DB
:Redis 数据库索引 可选
- Nginx 配置 可选
温馨提示
端口号注意根据实际需要进行修改,且一旦修改,其他配置文件的对应配置也要跟随变动。
修改 redis.conf
在 docker/redis/conf/redis.conf
中,根据实际需要修改如下配置。
bind
指定 Redis 绑定的网络地址,默认 0.0.0.0 可选requirepass
Redis 密码 必选appendonly
是否启用 AOF 可选
修改 nginx.conf
在 docker/nginx/conf/nginx.conf
中,根据实际需要修改如下配置。
upstream admin-server.server
后端服务地址 必选server.listen
Nginx 服务监听端口 两处配置,必选server.server_name
Nginx 服务监听域名 两处配置,必选server.ssl_certificate
SSL 证书位置(.pem) 两处配置,必选server.ssl_certificate_key
SSL 证书位置(.key) 两处配置,必选
温馨提示
如果实在不需要开启 HTTPS,那就把 server.ssl_xxx
配置全部删除,修改 server.listen
监听的端口值为 80,并删除 [将 HTTP 请求转发到 HTTPS] 的 Server 配置
部署运行
将部署目录 continew-admin/docker
(包含 docker 目录)上传到部署服务器 /
根目录。
# 授权
chmod -R 777 /docker
# 进入 docker-compose.yml 脚本所在目录
cd /docker
# 创建并后台运行所有容器
docker-compose up -d
等待自动下载镜像、构建及运行容器完成后,可通过 Docker 相关命令查看容器状态。
# 查看镜像列表
docker images
# 查看容器列表
docker ps -a
# 查看指定容器运行日志
docker logs -f 容器名称
此时的 /docker/continew-admin
目录结构应该如下:
/docker
├─ continew-admin(ContiNew Admin 部署目录及后端容器挂载目录)
│ ├─ bin(核心程序)
│ ├─ config(配置文件)
│ ├─ lib(依赖 jar)
│ ├─ html(前端部署物料)
│ ├─ data(本地文件数据存储,自动生成)
│ ├─ logs(日志,自动生成)
│ └─ Dockerfile
└─ 其他略...