docker安装nextcloud,并集成onlyoffice

1. 拉取镜像

docker pull nextcloud:stable 注意,尽量使用stable版本,其他版本bug较多
docker pull onlyoffice/documentserver:8.2.3
docker pull redis:7.4.3

2. 编写compose文件

services:
 nextcloud:
   image: nextcloud:stable
   container_name: nextcloud
   networks:
     - nextcloud
   depends_on:
     - redis
   restart: always
   environment:
     MYSQL_DATABASE: nextcloud               # 使用与数据库服务相同的数据库名称
     MYSQL_USER: nextcloud                   # 使用与数据库服务相同的用户名
     MYSQL_PASSWORD: Qd@#yu1@3YNJ            # 使用与数据库服务相同的密码
     MYSQL_HOST: 10.200.4.1                  # 数据库主机名为 db(即 db 服务)
     TZ: Asia/Shanghai                       # 设置时区为上海
   volumes:
     - /mnt/nfs/docker_volumes/nextcloud:/var/www/html
   ports:
     - 8080:80
   links:
     - onlyoffice:onlyoffice

 onlyoffice:
   image: onlyoffice/documentserver:8.2.3
   container_name: onlyoffice
   restart: always
   ports:
     - 9000:80
     - 9001:443
   environment:
     - REDIS_SERVER_HOST=redis
     - REDIS_SERVER_PORT=6379
   volumes:
     - /mnt/nfs/docker_volumes/onlyoffice/logs:/var/log/onlyoffice
     - /mnt/nfs/docker_volumes/onlyoffice/data:/var/www/onlyoffice/data
   networks:
     - nextcloud

 redis:
   image: redis:7.4.3
   ports:
     - 6379:6379
   container_name: onlyoffice-redis
   volumes:
     - /mnt/nfs/docker_volumes/onlyoffice/redis/data:/data
     - /mnt/nfs/docker_volumes/onlyoffice/conf:/etc/redis/redis.conf
   restart: always
   networks:
     - nextcloud

# 网络定义
networks:
 nextcloud:                          # 定义一个名为 nextcloud_network 的网络

3. 运行

docker compose -f nextcloud.yml up -d

4. 配置

4.1 OnlyOffice配置文件允许私有ip通过

如果发现日志文件中存在:
Error: DNS lookup xxx.xxx.xxx.xx(family:undefined, host:undefined) is not allowed. Because, It is private IP address.
那么需要编辑配置文件允许私有ip通过.
编辑docker中/etc/onlyoffice/documentserver/default.json​下的内容,搜索并修改以下字段为true

"request-filtering-agent" : {
        "allowPrivateIPAddress": true,
        "allowMetaIPAddress": true
}

4.2 Nextcloud安装OnlyOffice插件

插件市场:https://apps.nextcloud.com/
搜索对应NextCloud版本的OnlyOffice,下载并上传到/var/www/html/apps/目录下,解压

4.3 Nextcloud配置OnlyOffice

  • 获取OnlyOffice的密钥

    docker exec -it onlyoffice bash
    cat /etc/onlyoffice/documentserver/local.json
    

  • 配置OnlyOffice

4.3 OnlyOffice安装字体

OnlyOffice原生字体会引起excel中文乱码,需要重新添加字体。
解决方法:删除OnlyOffice自带字体,并导入新字体。

  • 删除OnlyOffice原生字体
docker exec -it onlyoffice /bin/bash
cd /var/www/onlyoffice/documentserver/core-fonts
rm -rf *
cd /usr/share/fonts/
rm -rf *
  • 拷贝需要的字体到docker中
docker cp ./fonts/ onlyoffice:/usr/share/fonts/truetype/custom/
docker exec -it onlyoffice /bin/bash
cd /usr/bin
documentserver-generate-allfonts.sh

参考资料

posted @ 2025-04-29 16:46  vincent_liuliu  阅读(1345)  评论(0)    收藏  举报