# ========================================================================================== # Docker Compose 配置(Compose V2 规范,无需 version 字段) # 应用服务定义区,包含多种 Go 框架 + 多种前端 UI 组件库的组合服务 # ========================================================================================== # 应用服务定义区,包含多种 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.gin # 日志配置:使用 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.gin # 日志轮转配置 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.gin # 日志配置 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.gin # 日志配置 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.beego # 日志配置 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.beego # 日志配置 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.beego # 日志配置 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.beego # 日志配置 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.goframe # 日志配置 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 # 环境变量文件 env_file: - .env.goframe.elevue # 日志配置 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.goframe # 日志配置 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.goframe # 日志配置 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.iris # 日志配置 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.iris # 日志配置 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.iris # 日志配置 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.iris # 日志配置 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.echo # 日志配置 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.echo # 日志配置 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.echo # 日志配置 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.echo # 日志配置 logging: driver: "json-file" options: max-size: "500m" max-file: "10"