seafile8.0.7社区版服务端迁移到Docker方式并升级9.0.6踩坑记录

最新的seafile社区版服务端为9.0.6,在用的服务端还是8.0.7,前段时间准备升级的,看了官方升级文档后感觉有点麻烦,需要劝退,最近得空,干脆升级到最新版,docker部署确实香,以前基本都是大版本才会更新,二进制包的服务端升级太容易出错了,水平有限,很多次都是找不到升级失败的原因,最终不得不新装然后导入数据库的方式升级。。。

记录下踩的坑:

服务器环境centos8.5

因为从 9.0 开始,二进制包不能运行在 CentOS 7, CentOS 8 上。需要在 CentOS 或其他一些二进制包不支持的平台上运行 Seafile的要迁移到 Docker 方式来运行 Seafile。

官方迁移文档:非 Docker 部署 Seafile 迁移到 Docker

参考的官方论坛文档:2021年CentOS 7 docker部署seafile8+OnlyOffice

一、部署docker

CentOS 中安装 Docker

Ubuntu 中安装 Docker

部署docker环境参照上面的连接

遇到的坑:

1.因为服务器环境centos8.5,安装docker compose的时候需要使用pip3来安装

#安装 PIP3
yum -y install python3-pip
#更新 PIP3
pip3 install --upgrade pip
#安装 Docker Compose
pip3 install docker-compose
# 查看docker compose的版本
docker-compose version

二、从8.0.7社区版迁移到docker部署并升级9.0.6

遇到的坑:

1."docker-compose logs -f"里面显示seahub web服务未成功启动

#logs错误显示内容
Starting seahub at port 8000 …
Error:Seahub failed to start.
Please try to run “./seahub.sh start” again

因为我不是用seafile默认的目录名,导致docker容器内seahub.pid不能生成,所以seahub web服务不能启动。。。搜索都快被我按坏了,找的我好苦(花了几个小时终于找到原因)。

#修改conf配置文件夹内的gunicorn.conf.py配置文件
#我原来的路径为 /XXXX/seafile/pids,改为seafile默认的即可
/opt/seafile/pids

三、本地nginx反代

seafile docker容器内带有一个nginx,默认web使用80端口,因为服务器有其它web需要,不能给80端口,分配了其它端口。

遇到的坑:

1.通过本地nginx反代后,可以登录web页面,但是点开文件下载显示“找不到页面文件”,大概是这个意思,也不能直接下载

#参照官方反代配置稍微修改下本地nginx反代配置即可
    location / {
         proxy_pass      http://127.0.0.1:9000;  #9000是我docker用的的端口
         proxy_set_header   Host $host;
         proxy_set_header   X-Real-IP $remote_addr;
         proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
         proxy_set_header   X-Forwarded-Host $server_name;
         proxy_read_timeout  1200s;
         # used for view/edit office file via Office Online Server
         client_max_body_size 0;
    }
    location /seafhttp {
       # rewrite ^/seafhttp(.*)$ $1 break;  注释掉不要了
        proxy_pass   http://127.0.0.1:9000/seafhttp; #9000是我docker用的的端口
        client_max_body_size 0;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout  36000s;
        proxy_read_timeout  36000s;
        proxy_send_timeout  36000s;
        send_timeout  36000s;
    }

本文链接:http://www.bosim.vip/index.php/post/38.html

--EOF--