## 使用 gofiber 作为 http 服务框架 ## 编译环境 **因使用了 xorm.io/reverse** ### windows 环境下 需要安装 gcc 环境 > > Mingw > 可前往 [(mingw仓库)](https://sourceforge.net/projects/mingw-w64/files/mingw-w64/) > > 下载 x86_64-posix-seh > > 解压后将 bin 目录 添加到环境变量 > > 重启生效即可 ### 验证是否安装 gcc ```shell gcc -v ```` ## 一键初始化项目 ```shell go generate -x init.go ``` ## xorm ### 从结构体 同步 数据库表结构 **User表为例** ```shell go test ./model/user/generate -v ``` ### 从 数据库 反向同步 数据库结构 **部分类型 如: bool 可能需要手动处理** ```shell go generate ./model/user/reverse_generate.go ``` ### 手动初始化 #### swagger ##### 安装 ```shell go install github.com/swaggo/swag/cmd/swag@latest ``` ##### 生成 swagger 文档 ```shell swag init ``` #### air 热重载 ##### 安装 ```shell go install github.com/cosmtrek/air@latest ``` 配置文件 .air.toml ## 运行项目 ### 热重载 ```shell air ``` ### 直接运行 ```shell go run ./main.go ``` ### 编译运行 ```shell go build ``` ## 所需依赖服务 环境 *建议通过 portainer 部署* ### Portainer ```shell sudo docker run -d -p 9000:9000 --name portainer --restart always\ -v /var/run/docker.sock:/var/run/docker.sock\ -v /opt/portainer/data:/data\ portainer/portainer-ce ``` ### Redis ```yaml version: '3.4' services: redis_master: container_name: redis-master image: redis:latest restart: always command: /etc/redis/redis.conf --appendonly yes --requirepass "12341234" ports: - "6379:6379" volumes: - "/opt/redis/data:/data" - "/opt/redis/redis.conf:/etc/redis/redis.conf" ``` ### Mysql ```yaml version: "3.4" x-environment: &environment environment: - MYSQL_PORT_3306_TCP_ADDR=mysql - MYSQL_ROOT_HOST=% - MYSQL_ROOT_PASSWORD=12341234 services: mysql: container_name: mysql image: mysql/mysql-server:8.0 ports: - "3306:3306" restart: always <<: *environment volumes: - /opt/mysql/data:/var/lib/mysql ```