662 lines
20 KiB
YAML
662 lines
20 KiB
YAML
# Docker Compose 文件版本,3.7 支持大多数现代 Docker 特性
|
|
version: '3.7'
|
|
|
|
# 应用服务定义区,包含多种 Go 框架 + 多种前端 UI 组件库的组合服务
|
|
services:
|
|
|
|
# ==========================================================================================
|
|
# Gin 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
gin_layui:
|
|
# 镜像名称:从私有仓库拉取,格式为 ${仓库地址}/xiaomayi/${服务名}:${版本号}
|
|
# 版本号未指定时默认使用 latest
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称,使用环境变量 ${SERVER_NAME} 指定,便于识别
|
|
container_name: ${SERVER_NAME}
|
|
# 以特权模式运行容器,赋予容器访问宿主机文件系统、设备等的权限
|
|
# 注意:特权模式安全性较低,生产环境需谨慎使用
|
|
privileged: true
|
|
# 指定容器内运行进程的用户为 root
|
|
user: root
|
|
# 启动策略:始终重启(容器退出时自动重启)
|
|
restart: always
|
|
# 网络模式:host 模式,容器直接使用宿主机网络,无需 NAT 转换
|
|
# 注意:host 模式下 ports 端口映射实际不生效,仅作声明用途
|
|
network_mode: host
|
|
# 端口映射声明(host 模式下实际由应用自身监听端口)
|
|
ports:
|
|
- 8010:8010
|
|
# 文件挂载:将宿主机当前目录下 ${SERVER_NAME}/upload 挂载到容器内上传目录
|
|
# 用于持久化用户上传的文件
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 从 .env.local 文件加载环境变量到容器
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置:使用 json-file 驱动,单个日志文件最大 500MB,最多保留 10 个
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Gin 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
gin_elevue:
|
|
# 镜像名称(同上,使用环境变量动态拼接)
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式运行
|
|
privileged: true
|
|
# 容器内运行用户
|
|
user: root
|
|
# 始终重启策略
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8013 端口)
|
|
ports:
|
|
- 8013:8013
|
|
# 上传文件持久化挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志轮转配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Gin 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
gin_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8016 端口)
|
|
ports:
|
|
- 8016:8016
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Gin 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
gin_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8019 端口)
|
|
ports:
|
|
- 8019:8019
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Beego 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
beego_layui:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8030 端口)
|
|
ports:
|
|
- 8030:8030
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Beego 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
beego_elevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8033 端口)
|
|
ports:
|
|
- 8033:8033
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件(已补全,与其他服务保持一致)
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Beego 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
beego_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8036 端口)
|
|
ports:
|
|
- 8036:8036
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Beego 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
beego_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8039 端口)
|
|
ports:
|
|
- 8039:8039
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# GoFrame 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
goframe_layui:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
|
#network_mode: host
|
|
# 端口映射:宿主机端口:容器端口
|
|
ports:
|
|
- 8020:8000
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# GoFrame 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
goframe_elevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
|
#network_mode: host
|
|
# 端口映射:宿主机端口:容器端口
|
|
ports:
|
|
- 8023:8000
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
environment:
|
|
TZ: Asia/Shanghai
|
|
GF_DATABASE_DEFAULT_LINK: "mysql:${MYSQL_USER:-root}:${MYSQL_PASSWORD:-root}@tcp(${MYSQL_HOST:-mysql}:${MYSQL_PORT:-3306})/${MYSQL_DATABASE:-easygoadmin.goframe.elevue}?charset=utf8mb4&parseTime=true&loc=Local"
|
|
GF_REDIS_DEFAULT_ADDRESS: "${REDIS_HOST:-redis}:${REDIS_PORT:-6379}"
|
|
GF_REDIS_DEFAULT_PASS: "${REDIS_PASSWORD:-123456}"
|
|
GF_FILE_UPLOADDIR: "/data/upload"
|
|
GF_JWT_SECRET: "${JWT_SECRET:-please-change-this-jwt-secret}"
|
|
GF_CAPTCHA_BYPASSCODE: ""
|
|
GF_APP_ERRORMSG: "false"
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# GoFrame 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
goframe_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
|
#network_mode: host
|
|
# 端口映射:宿主机端口:容器端口
|
|
ports:
|
|
- 8026:8000
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# GoFrame 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
goframe_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
# 注意:要使用 ports 端口映射,必须移除 host 网络模式,改用默认 bridge 网络
|
|
#network_mode: host
|
|
# 端口映射:宿主机端口:容器端口
|
|
ports:
|
|
- 8029:8000
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Iris 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
iris_layui:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8040 端口)
|
|
ports:
|
|
- 8040:8040
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Iris 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
iris_elevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8043 端口)
|
|
ports:
|
|
- 8043:8043
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Iris 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
iris_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8046 端口)
|
|
ports:
|
|
- 8046:8046
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Iris 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
iris_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8049 端口)
|
|
ports:
|
|
- 8049:8049
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Echo 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
echo_layui:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8050 端口)
|
|
ports:
|
|
- 8050:8050
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Echo 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
echo_elevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8053 端口)
|
|
ports:
|
|
- 8053:8053
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Echo 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
echo_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8056 端口)
|
|
ports:
|
|
- 8056:8056
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Echo 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
echo_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8059 端口)
|
|
ports:
|
|
- 8059:8059
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/${SERVER_NAME}/upload:/data/app/upload
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10" |