Docker Compose一键部署企业知识库:10分钟搭建私有化文档管理中心

Docker Compose 一键部署企业知识库:10 分钟搭建私有化文档管理中心

对于想快速搭建企业知识库的团队来说,Docker 部署是目前门槛最低、速度最快的方式------不需要配置 Java 环境、不需要安装数据库、不需要折腾 Nginx,一个 docker-compose.yml 文件和一条命令就能跑起来,本文以 zyplayer-doc 为例,手把手带你完成从零到上线的全流程。

为什么选择 Docker 部署?

1. 零环境依赖

传统的 Java Web 项目部署需要安装 JDK、配置 Maven、安装 MySQL、配置 Nginx 反向代理......每个步骤都可能踩坑,Docker 部署把这些依赖全部封装在容器里,宿主机只需要安装 Docker 和 Docker Compose,其他一切自动处理。

2. 一键启动,一键升级

  • 启动:docker compose up -d
  • 升级:docker compose pull && docker compose up -d
  • 备份:docker exec mysql mysqldump ...

版本升级不需要手动迁移数据库、不需要重新配置中间件,拉取新镜像重启即可。

3. 环境一致性

开发环境、测试环境、生产环境使用同一份 docker-compose.yml,避免了"我本地能跑,服务器上不行"的经典问题。

准备工作

服务器要求

项目 最低配置 推荐配置
操作系统 Linux(Ubuntu 20.04+ / CentOS 7+) Ubuntu 22.04
CPU 2 核 4 核+
内存 4 GB 8 GB+
磁盘 20 GB 50 GB+(根据文档量增长)
软件 Docker 20.10+ / Docker Compose 2.0+ 最新稳定版

安装 Docker 和 Docker Compose

如果服务器还没有 Docker 环境,快速安装:

bash 复制代码
# Ubuntu 一键安装 Docker
curl -fsSL https://get.docker.com | bash

# 安装 Docker Compose 插件
sudo apt install docker-compose-plugin -y

# 验证
docker --version
docker compose version

部署步骤

第一步:创建部署目录

bash 复制代码
mkdir -p /opt/zyplayer-doc && cd /opt/zyplayer-doc

第二步:编写 docker-compose.yml

创建 docker-compose.yml 文件:

yaml 复制代码
version: '3.8'
services:
  mysql:
    image: mysql:8.0
    container_name: zyplayer-mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: your_secure_password
      MYSQL_DATABASE: zyplayer_doc
    volumes:
      - ./mysql-data:/var/lib/mysql
    ports:
      - "3306:3306"

  zyplayer-doc:
    image: zyplayer/zyplayer-doc:latest
    container_name: zyplayer-doc
    restart: always
    depends_on:
      - mysql
    environment:
      SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/zyplayer_doc?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
      SPRING_DATASOURCE_USERNAME: root
      SPRING_DATASOURCE_PASSWORD: your_secure_password
    volumes:
      - ./upload-files:/app/upload
    ports:
      - "8083:8083"

第三步:启动服务

bash 复制代码
docker compose up -d

首次启动会自动拉取镜像并初始化数据库,整个过程大约 2-5 分钟(取决于网络速度),启动完成后,访问 http://你的服务器IP:8083 即可看到登录页面。

第四步:初始化配置

  1. 使用默认管理员账号登录(首次会在页面上提示初始密码)
  2. 进入系统设置,修改管理员密码
  3. 配置邮件服务(用于注册验证、通知提醒)
  4. 根据需要配置存储方式(本地磁盘 / 阿里云 OSS / MinIO 等)
  5. 创建第一个知识空间,开始使用

进阶配置

配置 Nginx 反向代理

生产环境建议使用 Nginx 做反向代理,启用 HTTPS:

nginx 复制代码
server {
    listen 443 ssl;
    server_name doc.yourcompany.com;

    ssl_certificate /etc/nginx/ssl/doc.yourcompany.com.pem;
    ssl_certificate_key /etc/nginx/ssl/doc.yourcompany.com.key;

    client_max_body_size 100m;

    location / {
        proxy_pass http://127.0.0.1:8083;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

配置外部数据库

如果已有 MySQL 实例,可以删掉 docker-compose.yml 中的 mysql 服务,直接把 SPRING_DATASOURCE_URL 改为外部数据库地址。

zyplayer-doc 同时支持 PostgreSQL 和达梦数据库,生产环境可根据团队技术栈灵活选择。

数据库自动备份

在宿主机上配置 cron 定时任务,每天凌晨自动备份数据库:

bash 复制代码
# 编辑 crontab
crontab -e

# 添加每天凌晨 2 点的备份任务
0 2 * * * docker exec zyplayer-mysql mysqldump -uroot -pyour_secure_password zyplayer_doc > /opt/backup/zyplayer_doc_$(date +\%Y\%m\%d).sql

性能优化建议

  • 上传文件使用对象存储(OSS/MinIO),避免本地磁盘成为瓶颈
  • MySQL 配置调优:增加 innodb_buffer_pool_size、调整最大连接数
  • 根据并发用户数调整 JVM 内存参数

部署后的第一步

知识库搭好之后,建议按以下顺序推进:

  1. 创建空间结构:按部门或项目划分空间,规划好目录层级
  2. 导入现有文档:用 CLI 工具批量导入已有的 Markdown、Word 等文档
  3. 配置权限体系:设置空间/目录/文档级别的访问权限,匹配组织架构
  4. 接入 AI 问答:配置大模型接口,让知识库支持自然语言检索
  5. 推广使用:在团队内发布使用指南,培养文档沉淀的习惯

常见问题

Q:Docker 部署需要什么 Linux 发行版?

A:支持所有主流 Linux 发行版(Ubuntu、CentOS、Debian 等),内核版本 3.10+ 即可。

Q:数据存在哪里?安全吗?

A:数据库数据存储在 mysql-data 目录,上传文件存储在 upload-files 目录,全部在宿主机本地,建议定期备份这两个目录。

Q:如何升级到新版本?

A:执行 docker compose pull && docker compose up -d,数据库会自动执行迁移脚本,无需手动干预。

Q:能用内网部署吗?

A:完全可以,Docker 部署不依赖外网(除了首次拉取镜像),适合内网环境,只需提前把镜像导入内网镜像仓库即可。

结语

Docker 部署把企业知识库的部署门槛从"需要运维工程师"降到了"会敲命令就行",对于中小团队来说,10 分钟就能拥有一个功能齐全、数据自主的私有化文档管理中心,先用起来,再根据需求逐步优化,知识的沉淀比完美规划更重要。