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



浙公网安备 33010602011771号