开箱即用的 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 与服务路径一致。

项目源码

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

目录
相关文章
|
2月前
|
前端开发 JavaScript Go
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:为什么选 Golang+Vue3 这套组合?
go-wind-admin 采用 Golang + Vue3 技术栈,融合高性能后端与高效前端生态。后端基于 go-kratos、ent/gorm 灵活适配复杂业务,前端结合 Vue3、TypeScript 与 Vben Admin,提升开发效率与可维护性,兼顾性能、扩展性与企业级需求,是中后台系统的理想选择。(239字)
334 6
|
Kubernetes 安全 Docker
在 K8s 集群中创建 DERP 服务器
在 K8s 集群中创建 DERP 服务器
|
自然语言处理 Java Go
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
项目总监必看:如何利用Git深度统计团队代码贡献?多语言实践教程揭秘!
1006 0
|
2月前
|
Java 中间件 Nacos
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:kratos-bootstrap 入门教程(类比 Spring Boot)
kratos-bootstrap 是 GoWind Admin 的核心引导框架,类比 Spring Boot,提供应用初始化、配置管理、组件集成等一站式解决方案。通过标准化流程与多源配置支持,开发者可快速构建企业级中后台服务,专注业务开发,降低微服务复杂度。
249 2
|
2月前
|
人工智能 关系型数据库 API
AI数字员工哪个好?2025十大品牌云原生适配实测:玄晶引擎/百度/阿里全链路方案
本文基于阿里云生态实测,解析AI数字员工从“可视化”到“业务落地”的转型趋势,揭露选型两大陷阱,结合玄晶引擎等50+案例与API性能数据,发布十大品牌榜单。聚焦云原生架构、API对接效率、开发友好度与全链路闭环四大维度,提供中小微企业至中大型企业的优选方案及开发者专属选型工具包,助力低成本高效落地。
393 8
|
2月前
|
安全 中间件 API
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:JWT 集成指南
GoWind Admin 是企业级前后端一体中后台框架,内置 JWT 身份认证支持。通过集成 `kratos-authn` 组件,实现开箱即用的无状态鉴权方案。仅需四步:创建认证器、Wire 注册、中间件集成、配置启用,即可完成 JWT 集成,无缝对接 OPA 权限体系,保障系统安全。
145 3
|
前端开发 Go API
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:数据脱敏和隐私保护
GoWind Admin基于Protobuf生态,集成protoc-gen-redact插件,实现开箱即用的数据脱敏与隐私保护。通过注解定义规则,自动生成脱敏代码,支持多语言、灵活配置,零侵入业务逻辑,适用于微服务、日志、前端等场景,保障数据安全合规。
170 0
|
2月前
|
关系型数据库 API Go
初学者友好:Go-Kratos 集成 go-crud,Ent ORM CRUD 无需重复编码,轻松上手
本文介绍如何基于 `kratos-ent-example` 项目,集成 `go-curd` 工具简化 Go-Kratos 微服务中 Ent ORM 的 CRUD 操作。通过封装重复逻辑,实现增删改查代码的极简编写,帮助初学者快速上手微服务开发,提升效率,降低学习成本。
181 3
|
2月前
Qt6 QML 实现DateTimePicker组件
基于Qt6 QML实现的DateTimePicker组件,支持日期时间选择、键盘导航与范围限制,提供美观的深色主题界面,适用于桌面与嵌入式应用,易于集成与定制。
137 1
|
3月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
28381 10