开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:如何进行Docker部署后端

简介: GoWind Admin风行是一款企业级中后台框架,支持Docker一键部署。通过Makefile封装构建流程,提供docker-compose全量部署与docker run单服务部署两种模式,适配开发、生产多场景。支持服务增减灵活配置,助力高效容器化落地。

开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:如何进行Docker部署后端

Docker 部署具备环境一致性、可移植性强、部署高效等优势,是企业级应用落地的优选方案。风行·GoWind Admin 后端已将所有Docker部署相关操作封装至 Makefile 中,实现极简部署体验。本文将详细介绍两种核心部署方式、服务增减时的配置调整方法,助力开发者快速完成后端服务的容器化部署。

一、部署前提

  • 本地环境已安装 Docker(建议版本 20.10+)及 Docker Compose(建议版本 2.10+),可通过 docker -v``、docker compose version 命令验证安装。
  • 已获取 GoWind Admin 项目源码,进入后端项目根目录(即 backend 目录),所有部署命令均在此目录执行(特殊说明除外)。
  • 确保部署环境网络通畅,可正常拉取 Docker Hub 公共镜像(如 postgres、redis 等依赖组件)。

二、核心部署方式

方式一:使用 docker-compose 一键部署(推荐,全量服务)

该方式通过 docker-compose 编排所有依赖组件(postgres、redis、minio、consul 等)和 GoWind Admin 后端服务,实现“一键部署全量服务”,无需手动配置依赖关联,适合生产环境全量部署或开发环境快速搭建。

1. 部署命令

make docker-compose

2. 命令执行逻辑

  • 自动解析项目根目录下的 docker-compose.yaml 配置文件,拉取配置中声明的所有依赖组件镜像。
  • 基于项目内的 Dockerfile 构建 GoWind Admin 各后端服务镜像(如 admin-service 等)。
  • 按依赖顺序启动所有容器(先启动 postgres、redis 等中间件,再启动后端业务服务),并自动配置容器间网络互联。

3. 验证部署

部署完成后,执行以下命令查看容器运行状态:

docker compose ps

若所有容器状态均为 Up,则部署成功。可进一步通过后端 Swagger 文档地址(http://部署主机IP:7788/docs/)验证服务可用性。

方式二:使用 docker run 单独部署(灵活部署,适合调试/增量部署)

该方式先通过 Makefile 构建服务镜像,再通过docker run 命令单独启动单个服务,适合开发调试、增量部署单个服务或自定义部署拓扑的场景。

1. 第一步:构建服务镜像

通过 make docker 命令构建镜像,支持两种构建场景,按需选择:

# 场景1:在后端项目根目录执行 → 构建所有后端服务的镜像(如 admin-service、gateway-service 等)
make docker

# 场景2:在单个服务目录执行(路径:app/{服务名}/service)→ 仅构建当前服务的镜像
# 示例:仅构建 admin 服务镜像
cd app/admin/service
make docker

2. 第二步:单独启动服务容器

使用docker run 命令启动构建好的镜像,需指定网络、端口映射、中间件链接等参数。以下是 admin-service(核心后台管理服务)的启动示例:

docker run -itd \
  --name admin-server \          # 容器名称,自定义,便于识别
  --network=app-tier \           # 加入自定义网络(需提前创建,或使用已存在的网络)
  -p 7788:7788 \                 # 端口映射:主机端口:容器端口(容器内默认 7788,可通过配置修改)
  --link postgres:postgres \     # 链接 postgres 容器(格式:--link 中间件容器名:容器别名)
  --link redis:redis \           # 链接 redis 容器
  --link consul:consul \         # 链接 consul 容器
  go-wind-admin/admin-service:latest  # 镜像名称(构建时自动生成的格式)

3. 关键注意事项:中间件地址配置

若微服务配置文件中,中间件(postgres、redis 等)的地址填写为 127.0.0.1localhost,启动容器后会出现“无法连接中间件”的问题。原因是容器内的 localhost 指向容器自身,而非主机或中间件容器。
解决方案:

  • 修改微服务配置文件:将中间件地址改为对应的中间件容器名称(如 postgres、redis)。
  • 启动容器时添加 --link 参数:将业务服务容器与中间件容器链接,Docker 会自动在业务容器的 hosts 文件中添加中间件容器名的映射,实现直接访问。

三、服务增减时的 Docker 配置调整

GoWind Admin 对 Docker 配置做了高度适配,多数情况下无需修改 Dockerfile,仅需根据“是否使用 docker-compose 部署”调整对应配置文件。

1. 无需修改 Dockerfile 的原因

项目内置的 Dockerfile 采用通用化设计,通过构建参数(如 SERVICE_NAMEAPP_VERSION)动态适配不同服务,Makefile 中的 make docker 命令会自动识别当前服务目录,填充对应的构建参数,因此增减服务时无需修改 Dockerfile。

2. 使用 docker-compose 部署时的配置调整

若通过 docker-compose 管理服务,增减服务时需修改项目根目录下的 docker-compose.yaml 文件,新增服务时添加对应的服务节点,删除服务时移除对应节点即可。以下是新增/修改服务的配置示例(以 admin-service 为例):

  # 服务节点名称,自定义(建议与服务名一致)
  admin-service:
    image: go-wind-admin/admin-service  # 镜像名称(与 make docker 构建的镜像名一致)
    restart: always  # 容器退出时自动重启,保障服务可用性
    networks:
      - app-tier  # 加入统一网络,与其他服务/中间件互联
    ports:
      - "7788:7788"  # 端口映射:主机端口:容器端口(需确保主机端口未被占用)
    depends_on:  # 依赖的中间件/其他服务,确保启动顺序
      - postgres
      - redis
      - minio
      - consul
      - jaeger
    build:
      context: ./  # 构建上下文路径(项目根目录,Dockerfile 所在位置)
      args:
        SERVICE_NAME: admin  # 关键参数:对应服务路径 app/{SERVICE_NAME}/service 中的 SERVICE_NAME
        APP_VERSION: 1.0.0  # 应用版本,可自定义

配置调整核心要点

  • 服务节点名称:建议与 SERVICE_NAME 一致,便于识别和管理。
  • ports:确保主机端口未被占用,若需修改主机端口,调整冒号前的数值(如 7789:7788表示主机 7789 端口映射容器 7788 端口)。
  • depends_on:按实际依赖添加中间件/服务,Docker 会优先启动依赖的容器。
  • SERVICE_NAME:必须与服务所在路径 app/{SERVICE_NAME}/service 中的 {SERVICE_NAME} 完全一致,否则无法正确构建镜像。

四、常见问题与解决方案

问题1:执行 make docker-compose 时拉取镜像失败

解决方案:检查网络连接,若无法访问 Docker Hub,可配置 Docker 镜像加速器(如阿里云、网易云加速器);若依赖的私有镜像,需先执行 docker login 登录私有镜像仓库。

问题2:容器启动后,业务服务无法连接中间件

解决方案:① 检查中间件容器是否正常运行(docker ps | grep 中间件容器名);② 确认业务服务配置中的中间件地址为容器名;③ 确认容器已加入同一网络(docker network inspect 网络名 查看容器列表)。

问题3:构建镜像时提示“找不到服务目录”

解决方案:检查执行 make docker 的目录是否正确(项目根目录或 app/{服务名}/service 目录);确认 docker-compose.yamlSERVICE_NAME 与服务路径一致。

项目源码

获取完整项目源码,查看最新部署文档:

目录
相关文章
|
8天前
|
前端开发 JavaScript Go
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:为什么选 Golang+Vue3 这套组合?
go-wind-admin 采用 Golang + Vue3 技术栈,融合高性能后端与高效前端生态。后端基于 go-kratos、ent/gorm 灵活适配复杂业务,前端结合 Vue3、TypeScript 与 Vben Admin,提升开发效率与可维护性,兼顾性能、扩展性与企业级需求,是中后台系统的理想选择。(239字)
93 6
|
26天前
|
消息中间件 安全 NoSQL
阿里云通过中国信通院首批安全可信中间件评估
近日,由中国信通院主办的 2025(第五届)数字化转型发展大会在京举行。会上,“阿里云应用服务器软件 AliEE”、“消息队列软件 RocketMQ”、“云数据库 Tair”三款产品成功通过中国信通院“安全可信中间件”系列评估,成为首批获此认证的中间件产品。此次评估覆盖安全可信要求、功能完备性、安全防护能力、性能表现、可靠性与可维护性等核心指标,标志着阿里云中间件产品在多架构适配与安全能力上达到行业领先水平。
387 202
|
16天前
|
人工智能 开发框架 缓存
2025 SECon × AgentX 大会:AI 原生应用架构专场精彩回顾 & PPT 下载
近日,2025 SECon × AgentX大会——AI 原生应用架构专场圆满落幕,本次专场阿里云联合信通院共同出品,现场吸引了 80+ 名技术从业者深度参与。活动聚焦 AI 时代软件架构的核心命题,深度分享了 AI 原生应用架构趋势与实践、AgentScope 开发框架、AI 开放平台、大模型可观测 & AIOps 等热门技术议题,探讨从基础设施到应用层的协同演进策略与工程实践。
144 18
|
人工智能 Cloud Native 安全
【AI原生研讨会】阿里云邀您共探企业 AI 原生应用架构升级实践
阿里云邀您参加于11月28日在北京阿里中心举办的“企业AI原生应用架构升级”研讨会,期待与您一起探索如何为企业构建真正可信赖、可扩展、可进化的下一代 AI 应用体系。现场席位有限,立即报名!
【AI原生研讨会】阿里云邀您共探企业 AI 原生应用架构升级实践
|
18天前
|
运维 监控 网络协议
云拨测:当“正常变更”摧毁全球网络时,谁来守护你的业务可用性?
一次权限变更,引发全球边缘网络瘫痪4小时,数百万网站返回 5XX,连状态页也宕机。故障源于“正常的变更”,暴露了企业对服务商的盲目信任。当内部监控失效,唯有云拨测能从真实用户视角,独立验证“服务是否可用”。
120 14
|
1月前
|
存储 算法 Java
深入理解JVM:内存管理与垃圾回收机制探索
JVM是Java程序的运行核心,实现跨平台、自动内存管理与高效执行。其架构包括类加载、运行时数据区、执行引擎等模块。内存模型历经演变,JDK 8起以元空间替代永久代,优化GC性能。JVM通过分代回收机制,结合标记清除、复制、整理等算法,管理对象生命周期,提升系统稳定性与性能。
|
6天前
|
缓存 视频直播
基于flutter3.38构建高性能直播+短视频+聊天app
flutter3.38.2+dart3.10+getx+media_kit跨平台实战搭建短视频+直播+聊天app系统。
88 4
基于flutter3.38构建高性能直播+短视频+聊天app
|
前端开发 安全 API
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:自动化解放双手,初学者快速搭建系统并自动生成前端接口
GoWind Admin 是基于 Go-Kratos 与 Vue3 的企业级中后台框架,开箱即用,集成用户、权限、租户等核心模块。搭配 protoc-gen-typescript-http,可从 Protobuf 自动生成类型安全的前端接口,大幅降低联调成本,提升开发效率,助力初学者快速搭建系统,实现前后端高效协作。
145 0
|
前端开发 Go API
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:数据脱敏和隐私保护
GoWind Admin基于Protobuf生态,集成protoc-gen-redact插件,实现开箱即用的数据脱敏与隐私保护。通过注解定义规则,自动生成脱敏代码,支持多语言、灵活配置,零侵入业务逻辑,适用于微服务、日志、前端等场景,保障数据安全合规。
82 0

热门文章

最新文章