Docker容器化部署悟空CRM:从环境配置到生产级实践

在实际企业级 CRM 系统选型与部署中,悟空 CRM(WukongCRM)因其开源、功能全面和 Java 技术栈而受到许多团队的关注。然而,从源码编译、依赖配置到服务启动,传统部署方式步骤繁琐,环境问题频发,极易消耗开发运维人员大量精力。Docker 容器化技术为这类复杂应用的标准化部署提供了理想方案,它通过将应用及其所有依赖打包成一个可移植的镜像,实现了“一次构建,处处运行”。本文将聚焦于如何利用 Docker 和 Docker Compose,从零开始完成悟空 AICRM 的完整生产级部署。整个过程不仅包括服务启动,更会深入讲解关键配置、网络规划、数据持久化以及部署后必须进行的健康检查与故障排查,确保你部署的系统稳定、可用。

1. 理解 Docker 部署悟空 CRM 的核心架构与优势

在动手操作之前,理解 Docker 部署方案的整体架构和设计意图,能帮助你在后续配置和排错时做出正确判断。

1.1 为什么选择 Docker Compose 部署悟空 CRM?

悟空 CRM 是一个典型的微服务架构应用,它依赖于 MySQL、Redis、Elasticsearch、Nacos(服务注册与配置中心)等多个中间件。手动部署需要分别安装、配置并启动这些服务,还要处理它们之间的网络通信和依赖启动顺序,复杂度很高。Docker Compose 通过一个docker-compose.yml文件定义和运行多容器的 Docker 应用,完美解决了这个问题。

使用官方提供的 Docker 部署方案,你将获得以下核心优势:

  • 环境标准化:所有服务(Java应用、数据库、缓存等)都运行在隔离的容器中,与宿主机环境解耦,避免了“在我机器上好好的”这类问题。
  • 一键启动:通过一条命令即可按正确顺序启动所有依赖服务和应用本身。
  • 简化网络配置:Compose 会自动创建一个专属网络,容器间可以通过服务名(如mysqlredis)直接通信,无需关心 IP 地址。
  • 资源与配置集中管理:所有服务的配置、数据卷映射、日志路径都在一个文件中定义,管理清晰。
  • 快速重建与扩容:可以轻松地重建整个环境或针对某个服务进行独立升级、扩容。

1.2 部署前的核心组件与流程梳理

根据官方提供的 Docker 目录结构,部署流程涉及以下几个核心部分:

  1. 基础设施层:由 Docker 和 Docker Compose 工具本身构成,是容器运行的基石。
  2. 中间件容器层:包含 MySQL、Redis、Elasticsearch、Nacos、XXL-JOB(分布式任务调度)、Nginx。这些容器通过docker-compose.yml定义,使用自定义配置和数据卷。
  3. 应用容器层:悟空 CRM 的 Java 应用服务。它依赖于上述中间件,在中间件就绪后启动。
  4. 配置与数据持久化:宿主机的confdatalog目录通过“卷映射”挂载到容器内,确保配置可维护、数据不丢失、日志可查看。

整个启动流程可以概括为:准备服务器 -> 安装 Docker 环境 -> 获取项目代码 -> 调整配置 -> 执行启动脚本 -> 等待服务就绪 -> 访问验证。

2. 部署环境准备与 Docker 安装

一个稳定的基础环境是成功部署的前提。本节将详细说明服务器选型、系统准备以及在不同操作系统上安装 Docker 和 Docker Compose 的步骤。

2.1 服务器与系统要求

官方建议的配置是 4 核 16G 及以上,这是一个保证多服务(尤其是 Elasticsearch)流畅运行的生产环境起点。对于测试或学习环境,最低配置不应低于 2 核 4G。

  • 操作系统:推荐使用 Linux 发行版,如 CentOS 7.6+、Ubuntu 18.04+。生产环境优先选择 CentOS 或 Rocky Linux 等企业级系统。Windows 和 macOS 主要用于本地开发测试。
  • 磁盘空间:预留至少 20GB 可用空间,用于存放 Docker 镜像、应用数据和日志。
  • 网络:服务器需要能访问互联网以下载 Docker 镜像。如果部署在内网,需提前准备所有必需的镜像并导入。

在开始安装前,请确保以具有sudo权限的用户登录服务器。

2.2 在 Linux 上安装 Docker 与 Docker Compose

Linux 是主流的部署平台。官方提供了docker-install.sh脚本,但理解其手动安装步骤更有利于排查问题。

步骤一:卸载旧版本(如有)

sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine

步骤二:安装必要的依赖包

# 对于 CentOS/RHEL/Rocky Linux sudo yum install -y yum-utils device-mapper-persistent-data lvm2 # 对于 Ubuntu/Debian sudo apt-get update sudo apt-get install -y apt-transport-https ca-certificates curl gnupg lsb-release

步骤三:设置稳定的 Docker 镜像仓库

# CentOS/RHEL/Rocky Linux sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo # Ubuntu/Debian curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/ap