文章目录
-
-
- [`docker-compose.yml` 文件配置得很全面,以下是一些注释](#
docker-compose.yml
文件配置得很全面,以下是一些注释) - [安装 `fresh`](#安装
fresh
) - [配置 `fresh`](#配置
fresh
) - 注意事项
- [`docker-compose.yml` 文件配置得很全面,以下是一些注释](#
-
docker-compose.yml
文件配置得很全面,以下是一些注释
yaml
version: '3'
services:
# MySQL 服务
geekai-mysql:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/mysql:8.0.33 # 使用的镜像
container_name: geekai-mysql # 容器名称
command: --default-authentication-plugin=mysql_native_password # 默认认证插件
restart: always # 自动重启策略
environment:
- MYSQL_ROOT_PASSWORD=12345678 # MySQL root 用户密码
ports:
- "3307:3306" # 主机端口3307映射到容器端口3306
volumes:
- ./conf/mysql/my.cnf:/etc/mysql/my.cnf # 自定义配置文件
- ./data/mysql/data:/var/lib/mysql # 数据持久化
- ./logs/mysql:/var/log/mysql # 日志持久化
- ./data/mysql/init.d:/docker-entrypoint-initdb.d/ # 初始化脚本
# Redis 服务
geekai-redis:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/redis:6.0.6 # 使用的镜像
restart: always # 自动重启策略
container_name: geekai-redis # 容器名称
command: redis-server --requirepass 12345678 # Redis 密码
volumes:
- ./data/redis:/data # 数据持久化
ports:
- "6380:6379" # 主机端口6380映射到容器端口6379
# XXL-JOB 管理平台
xxl-job-admin:
container_name: geekai-xxl-job-admin # 容器名称
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/xxl-job-admin:2.4.0 # 使用的镜像
restart: always # 自动重启策略
ports:
- "8081:8080" # 主机端口8081映射到容器端口8080
environment:
- PARAMS=--spring.config.location=/application.properties # 配置文件路径
volumes:
- ./logs/xxl-job:/data/applogs # 日志持久化
- ./conf/xxl-job/application.properties:/application.properties # 配置文件
# Midjourney 代理
midjourney-proxy:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/midjourney-proxy:2.6.2 # 使用的镜像
container_name: geekai-midjourney-proxy # 容器名称
restart: always # 自动重启策略
ports:
- "8082:8080" # 主机端口8082映射到容器端口8080
volumes:
- ./conf/mj-proxy:/home/spring/config # 配置文件
# 后端 API 程序
geekai-api:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-api:v4.0.8-amd64 # 使用的镜像
container_name: geekai-api # 容器名称
restart: always # 自动重启策略
depends_on:
- geekai-mysql # 依赖 MySQL 服务
- geekai-redis # 依赖 Redis 服务
environment:
- DEBUG=false # 调试模式
- LOG_LEVEL=info # 日志级别
- CONFIG_FILE=config.toml # 配置文件
ports:
- "5678:5678" # 主机端口5678映射到容器端口5678
- "9999:9999" # 主机端口9999映射到容器端口9999
volumes:
- /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime # 时区设置
- ./conf/config.toml:/var/www/app/config.toml # 配置文件
- ./logs/app:/var/www/app/logs # 日志持久化
- ./static:/var/www/app/static # 静态文件
- ./data/leveldb:/var/www/app/data # 数据持久化
# 前端应用
geekai-web:
image: registry.cn-shenzhen.aliyuncs.com/geekmaster/geekai-web:v4.0.8-amd64 # 使用的镜像
container_name: geekai-web # 容器名称
restart: always # 自动重启策略
depends_on:
- geekai-api # 依赖 API 服务
ports:
- "8080:8080" # 主机端口8080映射到容器端口8080
volumes:
- ./logs/nginx:/var/log/nginx # Nginx 日志持久化
- ./conf/nginx/conf.d:/etc/nginx/conf.d # Nginx 配置目录
- ./conf/nginx/nginx.conf:/etc/nginx/nginx.conf # Nginx 主配置文件
- ./conf/nginx/ssl:/etc/nginx/ssl # Nginx SSL 证书目录
如果你想启用热部署以便每次修改代码后自动重启 API 服务,可以使用 fresh
工具。下面是如何安装和配置 fresh
工具的步骤:
安装 fresh
-
安装 Go (如果还没安装) :
确保你已经安装了 Go 语言环境。可以从 Go 官方网站 下载并安装。
-
安装
fresh
:打开终端并运行以下命令来安装
fresh
:bashgo install github.com/gravityblast/fresh@latest
这将会把
fresh
安装到$GOPATH/bin
目录下。确保这个目录在你的系统 PATH 中。
配置 fresh
-
创建配置文件 :
在你的项目根目录下创建一个
fresh
配置文件(fresh.toml
),内容示例如下:toml[watch] # 监视文件的模式 watch = ["./"] [build] # 构建时排除的路径 exclude = ["vendor", "test"]
-
使用
fresh
启动服务 :在项目根目录下运行以下命令以启动
fresh
并监视文件变动:bashfresh
fresh
会启动你的应用并持续监视代码文件的变动,一旦检测到变动就会自动重启服务。
注意事项
- 确保你的项目配置和依赖正确,否则
fresh
可能无法正常工作。 fresh
通常用于开发环境,不建议在生产环境中使用。
通过使用 fresh
工具,你可以更高效地进行开发,不必每次修改后手动重启服务。如果有任何问题或需要进一步的帮助,请随时告诉我!