Loading... ## 官方指引 ONLYOFFICE 提供了多个版本的 Docker Compose 配置文件,分别适用于不同的产品版本和功能需求。官方指引:[https://helpcenter.onlyoffice.com/workspace/installation/workspace-install-docker.aspx](https://helpcenter.onlyoffice.com/workspace/installation/workspace-install-docker.aspx) --- ## Docker Compose 配置文件说明 ### **1. `docker-compose.yml` for Community Server (distributed as ONLYOFFICE Groups)** * **适用产品**:ONLYOFFICE Community Server(社区版)。 * **功能**: * 提供文档管理、项目管理、客户关系管理(CRM)、邮件、日历等协作功能。 * 适用于小型团队或个人用户。 * **特点**: * 开源免费。 * 功能相对基础,适合轻量级使用。 * 部署简单,资源占用较低。 * **适用场景**: * 小型团队或个人用户需要文档协作和基本项目管理功能。 --- ### **2. `docker-compose.yml` for ONLYOFFICE Workspace Community Edition** * **适用产品**:ONLYOFFICE Workspace(社区版)。 * **功能**: * 提供文档管理、项目管理、CRM、邮件、日历、聊天等协作功能。 * 集成了 ONLYOFFICE Document Server,支持在线编辑 Office 文档(如 Word、Excel、PPT)。 * **特点**: * 开源免费。 * 功能比 Community Server 更丰富,适合中小型企业。 * 支持文档在线编辑和协作。 * **适用场景**: * 中小型企业需要文档协作、项目管理和团队沟通功能。 --- ### **3. `docker-compose.yml` for ONLYOFFICE Workspace Enterprise Edition** * **适用产品**:ONLYOFFICE Workspace(企业版)。 * **功能**: * 提供文档管理、项目管理、CRM、邮件、日历、聊天等协作功能。 * 集成 ONLYOFFICE Document Server,支持在线编辑 Office 文档。 * 提供高级功能,如单点登录(SSO)、企业级安全、审计日志、技术支持等。 * **特点**: * 商业付费版本。 * 功能最全面,适合中大型企业。 * 提供企业级支持和服务(如技术支持、定制化开发)。 * **适用场景**: * 中大型企业需要完整的协作平台、高级安全功能和技术支持。 --- ### **主要区别对比** | **特性** | **Community Server** | **Workspace Community Edition** | **Workspace Enterprise Edition** | | ---------------- | -------------------- | ------------------------------- | -------------------------------- | | **开源/免费** | 是 | 是 | 否(商业付费) | | **功能范围** | 基础协作功能 | 文档协作、项目管理、团队沟通 | 完整协作平台,支持高级功能 | | **文档在线编辑** | 不支持 | 支持 | 支持 | | **企业级安全** | 不支持 | 不支持 | 支持(如 SSO、审计日志) | | **技术支持** | 社区支持 | 社区支持 | 企业级技术支持 | | **适用场景** | 小型团队/个人用户 | 中小型企业 | 中大型企业 | --- ### **选择建议** * **个人或小型团队**:选择 `Community Server` 或 `Workspace Community Edition`,功能足够且免费。 * **中小型企业**:选择 `Workspace Community Edition`,支持文档协作和项目管理。 * **中大型企业**:选择 `Workspace Enterprise Edition`,功能全面,支持企业级需求。 --- ## 配置解读 ### **1. 主要镜像配置** #### **`mysql:8.0.29`** * **功能**:MySQL 数据库服务。 * **作用**:为 ONLYOFFICE Community Server 提供数据存储,用于存储用户、文档、配置等信息。 * **关键配置**: * `MYSQL_ROOT_PASSWORD`:设置 MySQL 的 root 用户密码。 * 数据卷:`mysql_data` 用于持久化 MySQL 数据。 #### **`onlyoffice/communityserver`** * **功能**:ONLYOFFICE Community Server 核心服务。 * **作用**:提供文档管理、项目管理、团队协作等功能。 * **关键配置**: * `MYSQL_SERVER_*`:连接 MySQL 数据库的配置。 * `ELASTICSEARCH_SERVER_*`:连接 Elasticsearch 的配置。 * `DOCUMENT_SERVER_*`:连接 Document Server 的配置。 * `JWT_*`:用于与 Document Server 的 JWT 认证。 * 数据卷:`community_data`、`community_log` 等用于持久化数据和日志。 #### **`onlyoffice/elasticsearch:7.16.3`** * **功能**:Elasticsearch 搜索服务。 * **作用**:为 ONLYOFFICE Community Server 提供全文搜索功能。 * **关键配置**: * `discovery.type=single-node`:单节点模式。 * `ES_JAVA_OPTS`:设置 JVM 内存参数。 * 数据卷:`es_data` 用于持久化 Elasticsearch 数据。 #### **`onlyoffice/documentserver`** * **功能**:ONLYOFFICE Document Server 服务。 * **作用**:提供在线文档编辑功能,支持 Word、Excel、PPT 等格式。 * **关键配置**: * `JWT_*`:用于与 Community Server 的 JWT 认证。 * 数据卷:`document_data`、`document_log` 等用于持久化数据和日志。 #### **`onlyoffice/controlpanel:3.5.2.530`** * **功能**:ONLYOFFICE Control Panel 服务。 * **作用**:提供管理界面,用于监控和管理 ONLYOFFICE 服务。 * **关键配置**: * `ONLYOFFICE_CORE_MACHINEKEY`:与 Community Server 共享的密钥。 * 数据卷:`controlpanel_data`、`controlpanel_log` 等用于持久化数据和日志。 --- ### **2. 服务依赖关系** * `onlyoffice-community-server` 依赖以下服务: * `onlyoffice-mysql-server`:用于数据存储。 * `onlyoffice-elasticsearch`:用于全文搜索。 * `onlyoffice-document-server`:用于文档编辑。 * `onlyoffice-control-panel` 依赖 `onlyoffice-community-server`。 --- ### **3. 网络配置** * 所有服务都连接到 `onlyoffice` 网络,这是一个 `bridge` 类型的网络,确保服务之间可以通过容器名称相互通信。 --- ### **4. 数据持久化** * 使用 Docker 数据卷(`volumes`)来持久化数据,确保容器重启或更新后数据不会丢失。 * MySQL 数据:`mysql_data`。 * Community Server 数据:`community_data`、`community_log`、`community_letsencrypt`。 * Elasticsearch 数据:`es_data`。 * Document Server 数据:`document_data`、`document_log`、`document_forgotten`。 * Control Panel 数据:`controlpanel_data`、`controlpanel_log`。 --- ### **5. 端口映射** * `onlyoffice-community-server` 暴露了以下端口: * `8061:80`:HTTP 端口。 * `8443:443`:HTTPS 端口。 * `5222:5222`:用于 XMPP 协议(即时通讯)。 * 其他服务(如 Elasticsearch、Document Server、Control Panel)仅通过 `expose` 在内部网络暴露端口,不直接对外暴露。 --- ### **6. 环境变量** * 环境变量用于配置服务的连接信息和认证密钥。 * MySQL:`MYSQL_ROOT_PASSWORD`、`MYSQL_SERVER_*`。 * Elasticsearch:`discovery.type`、`ES_JAVA_OPTS`。 * Document Server:`JWT_*`。 * Community Server 和 Control Panel:`ONLYOFFICE_CORE_MACHINEKEY`。 --- ### **7. 安全配置** * 使用 JWT(JSON Web Token)进行服务间认证: * `DOCUMENT_SERVER_JWT_ENABLED=true`:启用 JWT 认证。 * `DOCUMENT_SERVER_JWT_SECRET`:设置 JWT 密钥。 * `DOCUMENT_SERVER_JWT_HEADER`:设置 JWT 请求头。 --- ### **8. 资源限制与优化** * Elasticsearch 配置了内存锁定和文件描述符限制,以提高性能: * `bootstrap.memory_lock=true`:锁定内存,防止交换。 * `ulimits`:设置文件描述符限制。 --- ### **9. 特权模式与 cgroup** * `onlyoffice-community-server` 启用了 `privileged` 模式和 `cgroup: host`,以获取更高的系统权限,确保服务正常运行。 --- ## 总结 该 `docker-compose.yml` 文件定义了一个完整的 ONLYOFFICE Community Server 部署环境,包括 MySQL 数据库、Elasticsearch 搜索服务、Document Server 文档编辑服务以及 Control Panel 管理面板。通过数据卷持久化数据、网络配置实现服务间通信,以及 JWT 认证确保安全性,是一个典型的企业级协作平台部署方案。 # 最终配置文件 ```yaml services: onlyoffice-mysql-server: container_name: onlyoffice-mysql-server image: dockerhub.imgki.com/mysql:8.0.37-oraclelinux8 environment: - MYSQL_ROOT_PASSWORD=my-secret-pw networks: - onlyoffice stdin_open: true tty: true restart: always volumes: - ./config/mysql/conf.d:/etc/mysql/conf.d - ./config/mysql/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d - ./mysql_data:/var/lib/mysql onlyoffice-community-server: container_name: onlyoffice-community-server image: dockerhub.imgki.com/onlyoffice/communityserver depends_on: - onlyoffice-mysql-server - onlyoffice-document-server environment: - ONLYOFFICE_CORE_MACHINEKEY=core_secret - CONTROL_PANEL_PORT_80_TCP=80 - CONTROL_PANEL_PORT_80_TCP_ADDR=onlyoffice-control-panel - MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw - MYSQL_SERVER_DB_NAME=onlyoffice - MYSQL_SERVER_HOST=onlyoffice-mysql-server - MYSQL_SERVER_USER=onlyoffice_user - MYSQL_SERVER_PASS=onlyoffice_pass - DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server - DOCUMENT_SERVER_JWT_ENABLED=true - DOCUMENT_SERVER_JWT_SECRET=jwt_secret - DOCUMENT_SERVER_JWT_HEADER=AuthorizationJwt networks: - onlyoffice ports: - '8061:80' - '8443:443' - '5222:5222' stdin_open: true tty: true restart: always privileged: true cgroup: host volumes: - ./community_data:/var/www/onlyoffice/Data - ./community_log:/var/log/onlyoffice - ./community_letsencrypt:/etc/letsencrypt - /sys/fs/cgroup:/sys/fs/cgroup:rw - ./certs:/var/www/onlyoffice/Data/certs onlyoffice-document-server: container_name: onlyoffice-document-server image: dockerhub.imgki.com/onlyoffice/documentserver stdin_open: true tty: true restart: always environment: - JWT_ENABLED=true - JWT_SECRET=jwt_secret - JWT_HEADER=AuthorizationJwt networks: - onlyoffice expose: - '80' - '443' volumes: - ./document_data:/var/www/onlyoffice/Data - ./document_log:/var/log/onlyoffice - ./document_fonts:/usr/share/fonts/truetype/custom - ./document_forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten onlyoffice-control-panel: container_name: onlyoffice-control-panel depends_on: - onlyoffice-community-server image: dockerhub.imgki.com/onlyoffice/controlpanel:3.5.2.530 environment: - ONLYOFFICE_CORE_MACHINEKEY=core_secret expose: - '80' - '443' restart: always volumes: - /var/run/docker.sock:/var/run/docker.sock - ./controlpanel_data:/var/www/onlyoffice/Data - ./controlpanel_log:/var/log/onlyoffice networks: - onlyoffice stdin_open: true tty: true networks: onlyoffice: driver: 'bridge' ```     Last modification:March 31, 2025 © Allow specification reprint Like 如果觉得我的文章对你有用,请随意赞赏