今天准备升级使用docker-ce安装和运行的seafile网盘社区版的onlyoffice组件到最新的7.2版本。
使用下面的命令下载最新的7.2版本的onlyoffice镜像:
# docker pull onlyoffice/documentserver:7.2
# docker images| egrep "REPOSITORY|onlyoffice"
REPOSITORY TAG IMAGE ID CREATED SIZE
onlyoffice/documentserver 7.2 add62637ac9b 3 weeks ago 3.35GB
然后修改docker-compose的配置文件中的版本配置:
onlyoffice:
image: onlyoffice/documentserver:7.2
container_name: onlyoffice
ports:
- "18081:80"
extra_hosts:
- "www.myseafile.org:192.168.223.199"
volumes:
- /data/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
- /data/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
- /data/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
- /data/onlyoffice/DocumentServer/db:/var/lib/postgresql
networks:
- seafile-net
更新配置后,使用docker-compose来启动seafile网盘,网盘服务启动成功后,发现使用onlyoffice 7.2版本来打开网盘中的word文档,出现了下面的报错提示:

查询资料后,发现这个报错与7.2版本默认开启 JWT 令牌有关系(7.2之前的版本,并没有出现过这样的报错)。从onlyoffice的欢迎页面也可以看出来,从7.2版本开始,onlyoffice将默认启用JWT令牌功能。

上面的 docker exe [ onlyoffice_container_name ] 命令,其实就是获取local.json里面随机生成的密钥信息。onlyoffice的容器ID可以通过docker ps来获取。我这边直接将容器里面的local.json(本地先创建一个和容器里面内容一致的同名文件),然后在配置文件中将本地文件和容器文件进行映射。
onlyoffice:
image: onlyoffice/documentserver:7.2
container_name: onlyoffice
ports:
- "18081:80"
extra_hosts:
- "www.myseafile.org:192.168.223.199"
volumes:
- /data/onlyoffice/DocumentServer/logs:/var/log/onlyoffice
- /data/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data
- /data/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice
- /data/onlyoffice/DocumentServer/db:/var/lib/postgresql
- /data/onlyoffice/DocumentServer/local.json:/etc/onlyoffice/DocumentServer/local.json
networks:
- seafile-net
然后在seahub_settings.py文件中增加下面的配置信息。
ONLYOFFICE_JWT_SECRET = 'xxxxxx'
配置修改后保存,将容器down掉,重新up -d,然后再测试使用onlyoffice打开word文件,发现还是无法正常打开,但是这次的报错变成了:下载失败。但是,网盘本身的文件上传、下载都是正常的。
这个问题目前还没有找到原因,只好还原配置,回退到onlyoffice 7.1版本镜像。回退后,使用onlyoffice 7.1打开、编辑文档,恢复正常。


如果有使用7.2版本,且遇到和我一样或者类似问题的,或者有找到解决方案的,都欢迎留言区讨论。
参考:
https://forum.seafile.com/t/seafile-pro-7-1-3-with-onlyoffice-secret-jwt-blank-screen/11629
https://roy.wang/onlyoffice-set-jwt-key/
这是在Ruby中设置默认值的常用方法:classQuietByDefaultdefinitialize(opts={})@verbose=opts[:verbose]endend这是一个容易落入的陷阱:classVerboseNoMatterWhatdefinitialize(opts={})@verbose=opts[:verbose]||trueendend正确的做法是:classVerboseByDefaultdefinitialize(opts={})@verbose=opts.include?(:verbose)?opts[:verbose]:trueendend编写Verb
我在我的Rails项目中使用Pow和powifygem。现在我尝试升级我的ruby版本(从1.9.3到2.0.0,我使用RVM)当我切换ruby版本、安装所有gem依赖项时,我通过运行railss并访问localhost:3000确保该应用程序正常运行以前,我通过使用pow访问http://my_app.dev来浏览我的应用程序。升级后,由于错误Bundler::RubyVersionMismatch:YourRubyversionis1.9.3,butyourGemfilespecified2.0.0,此url不起作用我尝试过的:重新创建pow应用程序重启pow服务器更新战俘
我正在尝试修改当前依赖于定义为activeresource的gem:s.add_dependency"activeresource","~>3.0"为了让gem与Rails4一起工作,我需要扩展依赖关系以与activeresource的版本3或4一起工作。我不想简单地添加以下内容,因为它可能会在以后引起问题:s.add_dependency"activeresource",">=3.0"有没有办法指定可接受版本的列表?~>3.0还是~>4.0? 最佳答案 根据thedocumentation,如果你想要3到4之间的所有版本,你可以这
我想设置一个默认日期,例如实际日期,我该如何设置?还有如何在组合框中设置默认值顺便问一下,date_field_tag和date_field之间有什么区别? 最佳答案 试试这个:将默认日期作为第二个参数传递。youcorrectlysetthedefaultvalueofcomboboxasshowninyourquestion. 关于ruby-on-rails-date_field_tag,如何设置默认日期?[rails上的ruby],我们在StackOverflow上找到一个类似的问
两者都可以defsetup(options={})options.reverse_merge:size=>25,:velocity=>10end和defsetup(options={}){:size=>25,:velocity=>10}.merge(options)end在方法的参数中分配默认值。问题是:哪个更好?您更愿意使用哪一个?在性能、代码可读性或其他方面有什么不同吗?编辑:我无意中添加了bang(!)...并不是要询问nobang方法与bang方法之间的区别 最佳答案 我倾向于使用reverse_merge方法:option
如果我使用ruby版本2.5.1和Rails版本2.3.18会怎样?我有基于rails2.3.18和ruby1.9.2p320构建的rails应用程序,我只想升级ruby的版本,而不是rails,这可能吗?我必须面对哪些挑战? 最佳答案 GitHub维护apublicfork它有针对旧Rails版本的分支,有各种变化,它们一直在运行。有一段时间,他们在较新的Ruby版本上运行较旧的Rails版本,而不是最初支持的版本,因此您可能会发现一些关于需要向后移植的有用提示。不过,他们现在已经有几年没有使用2.3了,所以充其量只能让更
我安装了ruby版本管理器,并将RVM安装的ruby实现设置为默认值,这样'哪个ruby'显示'~/.rvm/ruby-1.8.6-p383/bin/ruby'但是当我在emacs中打开inf-ruby缓冲区时,它使用安装在/usr/bin中的ruby。有没有办法让emacs像shell一样尊重ruby的路径?谢谢! 最佳答案 我创建了一个emacs扩展来将rvm集成到emacs中。如果您有兴趣,可以在这里获取:http://github.com/senny/rvm.el
在启用Rack::Deflater来gzip我的响应主体时偶然发现了一些奇怪的东西。也许我遗漏了一些东西,但启用此功能后,响应被压缩,但是资源的ETag在每个请求上都会发生变化。这会强制应用程序每次都响应,而不是发送304。这在没有启用Rack::Deflater的情况下有效,我已经验证页面源没有改变。我正在运行一个使用thin作为Web服务器的Rails应用程序。Gemfile.lockhttps://gist.github.com/2510816有没有什么方法可以让我从Rack中间件获得更多的输出,这样我就可以看到发生了什么?提前致谢。 最佳答案
有人知道在发布新版本的Ruby和Rails时收到电子邮件的方法吗?他们有邮件列表,RubyonRails有一个推特,但我不想听到那些随之而来的喧嚣,我只想知道什么时候发布新版本,尤其是那些有安全修复的版本。 最佳答案 从therailsblog获取提要.http://weblog.rubyonrails.org/feed/atom.xml 关于ruby-on-rails-如何在发布新的Ruby或Rails版本时收到通知?,我们在StackOverflow上找到一个类似的问题:
在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList()Obt