Skip to content

Docker 部署

环境说明

README

下方为本项目部署所需运行环境,请注意检查您的环境是否与本项目所需一致,以减少环境引起的问题。

运行环境演示环境版本最低版本安装教程
Docker24.0.719.x+《CentOS 安装 Docker》
Docker Compose2.23.0《CentOS 安装 Docker Compose》

项目打包

后端

continew-admin 根目录下打开终端,输入下方命令进行后端打包。

bash
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 中的构建配置。

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 配置简述

  1. 如果接口和前端同域名,如通过 /api 去访问后台接口,就配置 VITE_API_PREFIX = '/api',然后在 nginx 做 /api 路径反代到后端
  2. 如果接口和前端不同域名,如通过 http://api.xxx.com 去访问后台接口,就配置 VITE_API_BASE_URL='http://api.xxx.com',然后在 nginx 添加 server 配置反代到后端

continew-admin-ui 目录下打开终端,输入下方命令进行前端打包。

bash
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 中,根据实际需要修改如下配置。

  1. MySQL 配置
    • MYSQL_ROOT_PASSWORD:Root 用户密码 必选
    • MYSQL_USER:自定义数据库用户名 可选
    • MYSQL_PASSWORD:自定义数据库用户密码 可选
  2. Redis 配置
    • --requirepass:Redis 密码 必选
  3. 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 数据库索引 可选
  4. 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 目录)上传到部署服务器 / 根目录。

shell
# 授权
chmod -R 777 /docker

# 进入 docker-compose.yml 脚本所在目录
cd /docker

# 创建并后台运行所有容器
docker-compose up -d

等待自动下载镜像、构建及运行容器完成后,可通过 Docker 相关命令查看容器状态。

shell
# 查看镜像列表
docker images

# 查看容器列表
docker ps -a

# 查看指定容器运行日志
docker logs -f 容器名称

此时的 /docker/continew-admin 目录结构应该如下:

/docker
 ├─ continew-admin(ContiNew Admin 部署目录及后端容器挂载目录)
 │  ├─ bin(核心程序)
 │  ├─ config(配置文件)
 │  ├─ lib(依赖 jar)
 │  ├─ html(前端部署物料)
 │  ├─ data(本地文件数据存储,自动生成)
 │  ├─ logs(日志,自动生成)
 │  └─ Dockerfile
 └─ 其他略...

友情提示

项目每增长一颗 star,可以给维护者们注入莫大的激情,诚恳的希望您能动动发财的小手,为 ContiNew Admin 点亮一颗小星星。

Gitee stars  GitHub stars