# web_demo **Repository Path**: yishixingqi/web_demo ## Basic Information - **Project Name**: web_demo - **Description**: 一个基于 gin web 框架的脚手架 - **Primary Language**: Go - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2022-07-17 - **Last Updated**: 2024-08-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # web_demo 一个基于 gin web 框架的脚手架 ## 快速入门 > 编译 1. 将 Makefile 文件中的 BINARY 变量值改为本服务名称 2. Linux 环境中,执行 make 命令,编译 ```shell make ``` > 打包 rpm 1. 服务器安装 rpmbuild ```shell yum install -y rpm-build ``` 2. 执行打包脚本 ```shell # 进入 rpm 目录 cd rpm # 指定服务名称、服务版本、安装路径 ./rpmbuild.sh -n web01 -v 1.0.0 -p /usr/local # 打包完成后,rpm 包会存放在当前目录 ``` > docker 镜像 1. 执行 docker 构建命令 ```shell docker build --network host -t web01 . ``` 2. 运行 docker 镜像 ```shell docker run -d \ --name web01 \ -p 80:8080 \ web01 # 进入容器 # docker exec -it web01 /bin/sh ``` ## 实现功能 | 实现功能 | 组件 | | ------------------ | ------------------------------------------------------------ | | web 服务 | 基于 [gin](https://github.com/gin-gonic/gin) 框架 | | 后台启动 | 使用标准库 exec.Start() 重新启动自己 | | 日志打卷 | [logrus](https://github.com/sirupsen/logrus) + [rotatelogs](https://github.com/lestrrat/go-file-rotatelogs) | | 读取 yaml 配置文件 | [yaml](https://github.com/go-yaml/yaml) | | 操作 mysql 数据库 | [gorm](https://github.com/go-gorm/gorm) | | 打包 rpm | shell 脚本 + rpmbuild | | 打包 docker 镜像 | Dockerfile | ## 代码简介 ```shell ├── assets # 配合示例的前端静态文件 │   ├── ... # 集成的 Bootstrap 前端库 ├── conf # 配置文件相关功能 │   ├── conf.go # 反序列化 yaml 配置文件,解析 │   ├── conf_test.go │   └── flag.go # 通过命令行参数,指定配置配置文件 ├── controller # 控制器,处理前端请求和参数,返回结果(不实现逻辑,只调用逻辑) │   └── ... # 一个示例 ├── dao # 数据库操作对象 │   └── mysql.go # 连接 mysql 数据库 ├── Dockerfile # 生成 docker 镜像 ├── go.mod ├── go.sum ├── logger # 日志相关功能 │   ├── gin_logger.go # 为 gin 提供 logrus 版日志中间件 │   ├── logger.go # 创建了一个全局的日志对象实例 │   └── log_test.go ├── main.go ├── Makefile ├── model # 模型和模型相关的数据库增删改查 │   ├── ... # 一个示例 ├── README.md ├── router # 设置 gin 所有路由 │   └── router.go ├── rpm # rpm 打包相关 │   ├── rpmbuild # rpmbuild 工作目录 │   │   ├── ... │   ├── rpmbuild.sh # rpm 打包脚本 │   ├── web01.service.template # 服务 service 文件模板 │   └── web01.spec.template # rpm spec 文件模板 ├── templates # 存放模板文件目录 │   └── ... └── web01.yaml # 服务配置文件 ```