一、描述:
本文章通过docker在liunx环境下部署onlyOffice及依赖插件,部署的是7.1版本的onlyOffice,7.2及以上版本增加了jwt密钥验证比较麻烦(我没弄成功。。。)。
二、部署步骤:
1、通过docker拉去only Office镜像(可以在hub.docker.com公网查看拉去命令):
docker pull onlyoffice/documentserver:7.1
2、通过docker拉取postgresql镜像(注意:必须9.6版本,高版本的密码验证策略不一样onlyOffice不支持):
docker pull postgres:9.6
3、制作postgresql镜像容器(建立用户:postgres,密码:123456,库名:postgres的数据库用户):
docker run --name postgres -e POSTGRES_PASSWORD=123456 -p 5432:5432 -v /home/postgresql/pgdata:/var/lib/postgresql/data -d postgres:9.6
4、制作only Office镜像容器(默认是80端口,这里映射成9050端口,可以按自己的改):
sudo docker run -i -t -d -p 9050:80 \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver:7.1
5、查看docker容器(可查看到postgresql和onlyOffice都已启动):
docker ps -a
6、通过Navicat工具在postgresql数据库增加onlyoffice用户及库(也可通过命令,但我不会),如下图:
先增加用户:用户名及密码都是:onlyoffice
再增加库:onlyoffice
7、在新增加的onlyoffice库里执行初始化sql(这个必须执行,不然集成到系统里时会一直显示:加载中。。。):
8、修改onlyOffice配置文件local.json:
先用命令将配置文件下载下来(因为不能docker里不能直接编辑):我下载到/usr/tmp/目录了.
docker cp 容器ID:/etc/onlyoffice/documentserver/local.json /usr/tmp/
修改配置文件local.json:按照postgresql数据库连接信息进行修改,注意dbHost要用服务器实际IP。如果不改在页面加载word或者excel文档时会一直显示加载中。
注意:如果用mysql数据库的话按照以下进行操作:
1、mysql的配置文件my.ini:(mysql8.0及以上版本需要此操作)
authentication_policy=caching_sha2_password
修改为:
authentication_policy=*2、执行语句:(mysql8.0及以上版本需要此操作)
ALTER USER '用户'@'%' IDENTIFIED WITH mysql_native_password BY '密码';3、onlyOffice的local.json配置文件,按如下改:
"services": {
"CoAuthoring": {
"sql": {
"type": "mysql",
"dbHost": "192.168.187.1",
"dbPort": "3306",
"dbName": "vent",
"dbUser": "root",
"dbPass": "RSKerDOY+2G+wjNc4wU6"
},
将修改后的local.json上传到docker:
docker cp /usr/tmp/local.json 容器ID:/etc/onlyoffice/documentserver
重启 onlyOffice服务(注意:一定不要重启docker容器,不然会重置掉配置文件):
docker exec -it 容器ID /bin/bash -c "supervisorctl restart all"
9、 访问网址验证是否成功(验证ok后onlyOffice的部署算完了):
http://onlyOffice服务器IP:9050/welcome/
验证集成到系统里时需要引用到页面的api:
http://onlyOffice服务器IP:9050/web-apps/apps/api/documents/api.js
三、参考命令:
1、启动docker:
sudo systemctl start docker
2、查看容器列表(结果可查看到容器ID):
docker ps -a
3、进入容器:
sudo docker exec -i -t 容器ID /bin/bash
4、onlyOffice配置文件地址:
cd /etc/onlyoffice/documentserver
5、从docker下载配置文件进行修改:
docker cp 容器ID:/etc/onlyoffice/documentserver/local.json /usr/tmp/
6、本地修改配置后上传到docker:
docker cp /usr/tmp/local.json 容器ID:/etc/onlyoffice/documentserver/
7、重启docker下某个服务(修改配置文件后重启服务):
docker exec -it 容器ID /bin/bash -c "supervisorctl restart all"
8、启动容器:(停止:stop,重启:restart)
docker start 容器ID
9、查看镜像列表(结果可获取到镜像ID)
docker image ls
10、删除镜像:
docker rmi 镜像ID
或者
docker image rm 镜像ID