521 lines
15 KiB
YAML
521 lines
15 KiB
YAML
# Docker Compose 文件版本,3.7 支持大多数现代 Docker 特性
|
|
version: '3.7'
|
|
|
|
# 应用服务定义区,包含多种 Python Web 框架 + 多种前端 UI 组件库的组合服务
|
|
services:
|
|
|
|
# ==========================================================================================
|
|
# Django 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
django_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
|
|
# 文件挂载:将宿主机当前目录下的 uploads 挂载到容器内上传目录
|
|
# 用于持久化用户上传的文件
|
|
volumes:
|
|
- $PWD/uploads:/data/apps/uploads
|
|
# 从 .env.local 文件加载环境变量到容器
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置:使用 json-file 驱动,单个日志文件最大 500MB,最多保留 10 个
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Django 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
django_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志轮转配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Django 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
django_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Django 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
django_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Flask 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
flask_layui:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8020 端口)
|
|
ports:
|
|
- 8020:8020
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Flask 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
flask_elevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8023 端口)
|
|
ports:
|
|
- 8023:8023
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Flask 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
flask_antdvue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8026 端口)
|
|
ports:
|
|
- 8026:8026
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Flask 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
flask_naivevue:
|
|
# 镜像名称
|
|
image: ${DOCKER_REGISTRY_URL}/xiaomayi/${SERVER_NAME}:${VERSION:-latest}
|
|
# 容器名称
|
|
container_name: ${SERVER_NAME}
|
|
# 特权模式
|
|
privileged: true
|
|
# 运行用户
|
|
user: root
|
|
# 始终重启
|
|
restart: always
|
|
# host 网络模式
|
|
network_mode: host
|
|
# 端口映射(8029 端口)
|
|
ports:
|
|
- 8029:8029
|
|
# 上传目录挂载
|
|
volumes:
|
|
- $PWD/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# FastAPI 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
fastapi_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# FastAPI 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
fastapi_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# FastAPI 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
fastapi_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# FastAPI 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
fastapi_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Tornado 框架 + Layui 前端模板
|
|
# ==========================================================================================
|
|
tornado_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Tornado 框架 + ElementPlus 前端模板
|
|
# ==========================================================================================
|
|
tornado_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Tornado 框架 + AntDesignVue 前端模板
|
|
# ==========================================================================================
|
|
tornado_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10"
|
|
|
|
# ==========================================================================================
|
|
# Tornado 框架 + NaiveUI 前端模板
|
|
# ==========================================================================================
|
|
tornado_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/uploads:/data/apps/uploads
|
|
# 环境变量文件
|
|
env_file:
|
|
- .env.local
|
|
# 日志配置
|
|
logging:
|
|
driver: "json-file"
|
|
options:
|
|
max-size: "500m"
|
|
max-file: "10" |