haiwen / seafile-docker

A Docker image for Seafile server
Other
547 stars 185 forks source link

容器重启后,无法将seahub_data/custom自动连接到seafile-server-latest/seahub/media下 #120

Closed zhengmz closed 5 years ago

zhengmz commented 5 years ago

环境说明

  1. 镜像 seafileltd/seafile:6.3.3
  2. HOST OS: centos 7
  3. 使用docker-compose方式来启动容器

问题描述

  1. 第一次初始化,没有建立seahub-data/custom目录
  2. 删除容器后,第二次启动容器,seafile-server-latest/seahub/media下没有创建avatars和custom到seahub-data

造成的影响

  1. 自定义的logo等图片无效

初步分析

感觉应该是在/etc/my_init.d/01_create_data_links.sh中少了对seahub-data的重建连接

renfeipeng commented 5 years ago

感谢您对seafile的支持,我检查了一下代码,01_create_data_links.sh脚本中确实有创建seahub-data的软链接,而且也运行6.3.3的镜像测试了一下,custom 和 avatars 目录也正常,持久化也没什么问题。

zhengmz commented 5 years ago

我是从直接安装迁移到docker的场景。迁移步骤:

  1. 修改conf下的相关配置
  2. 把seafile-data和seahub-data目录完全替换: 删除并拷贝原有的数据目录

在原先的系统中,我修改过logo和favicon,所以, seahub-data/custom目录中有值

如果不建立seafile-server-latest/seahub/media/custom到seahub-data/custom,就无法显示自定义的图标和logo

而使用 #121 中的脚本,就可以按原来设定显示自定义的图标和logo

为此,我觉得需要在01_create_data_links.sh增加链接,正如你们之前的版本中所做,不过,我在 #121 中做了优化,请参考,谢谢。

zhengmz commented 5 years ago

同样,我设想,在使用docker场景时

如果不在一开始创建seahub-data/custom目录和链接,那么在自定义时,系统会保存到seafile-server-latest/seahub/media/custom下,而这个目录只是在容器上,不是持久到外部目录/shared中,那么一旦容器删除重启,就找不到custom目录下的内容,从而无法按预期显示自定义的内容。

zhengmz commented 5 years ago

@renfeipeng 你好,下载了你们的pro版本看了一下,在pro版本中,是在upgrade.py做了这些事(fix_media_symlinks和fix_custom_dir),而普通版本6.3.3中,没有同步增加,所以,一旦容器删除后,重新启动,就会出现问题

renfeipeng commented 5 years ago

你是不是用的不是最新的6.3.3,这个upgrade.py专业版跟开原版用的是同一个文件,而且我自己拉取最新的6.3.3的镜像,运行后确实没啥问题,而且更新脚本中也有fix_media_symlinks和fix_custom_dir这两个函数。

zhengmz commented 5 years ago

md5sum两个版本的值分别为:

  1. 普通版镜像是: seafileltd/seafile:6.3.3
60540b40d0ef57007e1cc82a422c63c6  upgrade.py
  1. pro版本是: 6.3.7
d3f3223797d885a65db1477d492ece15  upgrade.py
zhengmz commented 5 years ago

seafileltd/seafile:6.3.3的镜像ID是: "sha256:b6e9f0e71d7c103e940bdbdc190599afa58fc89534832193fc2bae51e7eb830d"

renfeipeng commented 5 years ago

那你用的应该不是最新的镜像,重新pull一下吧,最新的镜像id应该是 sha256:bfae74570972a49031d77ea9f16482af94acf82bd77938ee77598c63c1d39e98

zhengmz commented 5 years ago

哦,使用 docker pull seafileltd/seafile:latest,而不是 docker pull seafileltd/seafile:6.3.3,就可以了,谢谢。

建议在hub.docker.com上,把tag:6.3.3修改一下,谢谢。