在 Docker 中运行 ONLYOFFICE Apps
简介
ONLYOFFICE Apps是一个文档中心,您可以在同一个位置连接用户和文档,以促进协作。
本指南将展示如何使用 Docker 在您的计算机上运行 ONLYOFFICE Apps。
本指南部署的是 ONLYOFFICE Apps的开发/测试版本,不适用于生产环境。此版本仅通过普通 HTTP 提供服务,不包含身份验证/OAuth 服务,并且功能集有所精简。对于生产部署,请使用 ONLYOFFICE Apps的生产版本。
概述
与标准的多容器部署不同,此版本在单个容器中运行所有 ONLYOFFICE Apps服务,而不是为每个服务使用单独的容器。完整的堆栈由以下容器组成:
| 容器 | 作用 |
|---|---|
| onlyoffice-apps | 所有 ONLYOFFICE Apps服务(已整合) |
| onlyoffice-document-server | Document Server(编辑器) |
| onlyoffice-mysql-server | MySQL 数据库 |
| onlyoffice-opensearch | OpenSearch |
与标准的多容器部署相比,此版本有以下区别:
- 所有 ONLYOFFICE Apps服务都整合到单个容器中。
- 简化的搜索。
- 不生成缩略图。
- 仅支持 HTTP,默认不支持 TLS/HTTPS。
- 没有身份验证/OAuth 服务。
系统要求
- CPU:至少 6 核(建议 8 核)
- RAM:至少 12 GB(建议 16 GB)
- HDD:至少 40 GB 可用空间
- 操作系统:内核版本为 3.10 或更高版本的 amd64 Linux 发行版
- 其他要求:
- 至少 6 GB 的交换空间
- 带有 Compose 插件的 Docker Engine(
docker compose命令)
克隆仓库
使用以下命令克隆 DocSpace-buildtools 仓库:
git clone https://github.com/ONLYOFFICE/DocSpace-buildtools.git
仓库克隆完成后,进入 Compose 目录:
cd DocSpace-buildtools/install/docker/community
运行预构建镜像
要使用预构建镜像以分离模式启动 ONLYOFFICE Apps,请运行以下命令:
docker compose up -d
容器启动并运行后,打开浏览器,在地址栏中输入 http://localhost 或 http://your-ip-address 即可访问 ONLYOFFICE Apps。
从源代码构建镜像
如果您想自行构建 ONLYOFFICE Apps镜像,或测试特定分支的更改,请使用此选项。
使用以下命令构建并启动容器:
docker compose up -d --build
默认情况下,镜像从 master 分支构建。要从其他分支构建,请指定 GIT_BRANCH 构建参数:GIT_BRANCH=your-branch docker compose up -d --build。
构建完成且容器运行后,在浏览器中打开 http://localhost 或 http://your-ip-address 即可访问 ONLYOFFICE Apps。
使用 SSL 运行
ONLYOFFICE Apps同时支持 Let's Encrypt 和自定义 SSL 证书。
使用 Let's Encrypt 证书
要使用 Let's Encrypt 证书运行 ONLYOFFICE Apps,请运行以下命令,并指定您自己的域名、电子邮件和工作空间 URL:
SSL_MODE="letsencrypt" \
SSL_DOMAIN="example.com,portal.example.com,api.example.com" \
SSL_EMAIL="admin@example.com" \
APP_URL_PORTAL="https://example.com/" \
docker compose \
-f docker-compose.yml \
-f ssl.yml \
up -d
使用以下参数:
- SSL_MODE – SSL 证书模式。
- SSL_DOMAIN – 一个或多个以逗号分隔的域名。
- SSL_EMAIL – 用于 Let's Encrypt 注册的电子邮件地址。
- APP_URL_PORTAL – 您工作空间的公共 HTTPS URL。
使用自定义证书或私有 CA 证书
如果您使用的是自签名证书或由私有证书颁发机构 (CA) 颁发的证书,ONLYOFFICE Document Server 也必须信任该证书。
取消 docker-compose.yml 文件中以下卷的注释:
services:
onlyoffice-document-server:
volumes:
- ${CERTIFICATE_PATH}:/var/www/onlyoffice/Data/certs/extra-ca-certs.pem
然后指定主机上的证书路径并运行以下命令:
SSL_MODE="custom" \
SSL_DOMAIN="example.com" \
SSL_CERT_PATH="/etc/nginx/certs/fullchain.crt" \
SSL_KEY_PATH="/etc/nginx/certs/private.key" \
CERTIFICATE_PATH="./config/nginx/certs/fullchain.crt" \
APP_URL_PORTAL="https://example.com/" \
docker compose \
-f docker-compose.yml \
-f ssl.yml \
up -d
CERTIFICATE_PATH 必须指向 Docker 主机上的证书文件,而不是容器内的路径。通常只有自签名证书或由私有 CA 颁发的证书才需要此选项。由公共 CA 颁发的证书(例如 Let's Encrypt、DigiCert 或 GoDaddy)通常不需要此额外配置。
使用以下参数:
- SSL_MODE – SSL 证书模式(custom)。
- SSL_DOMAIN – 工作空间域名。
- SSL_CERT_PATH – SSL 证书的路径。
- SSL_KEY_PATH – 私钥的路径。
- APP_URL_PORTAL – 您工作空间的公共 HTTPS URL。
默认情况下,ssl.yml 配置会将本地的 ./config/nginx/certs 目录挂载到容器内的 /etc/nginx/certs。
容器启动并运行后,在浏览器中打开您的工作空间地址(例如 **https://example.com/**)即可访问 ONLYOFFICE Apps。