欢迎光临散文网 会员登陆 & 注册

docker部署seafile踩坑日记

2023-08-30 11:34 作者:litu  | 我要投稿

本文基于seafile 10.0.1版本实现

1. 前言

目前seafile官方docker部署方式存在以下问题:

  • 不能指定mysql端口

  • 不能使用mysql8数据库

    • 如果想用mysql8数据库,需要修改用户的密码验证插件,但我又不想修改root用户的密码验证插件,那么就需要单独指定seafile的root用户,给这个root用户使用旧版密码验证插件,由此又引来另一个问题:

    • 不能指定root用户名

  • 默认http只能用80端口访问,修改docker端口映射后无法访问

2. 配置文件修改

具体修改的地方说明:

  • 修改bootstrap.py,增加mysql端口配置,增加root用户配置,修改seafile用户域名(从%.%.%.%修改成%)

  • 修改utils.py,增加读取mysql端口和root用户名配置

  • 修改setup-seafile-mysql.py,root用户名和mysql端口从配置获取

  • 修改seafile.nginx.conf.template,在location /配置下修改proxy_set_header Host $host[:12345],后面的端口改为你实际映射的端口,如果是通过nginx反向代理访问,需要改成nginx代理的端口

先把配置文件复制出来

然后按照图示修改各配置文件,左边为修改前,右边为修改后

  • setup-seafile-mysql.py

增加root_user参数
  • bootstrap.py:

  • utils.py:

  • seafile.nginx.conf.template

添加转发端口


3. 创建自定义镜像

4. 修改docker-compose文件

首先需要创建一个docker网络,用于容器间的相互访问,并且让mysql容器也加入到这个网络

然后编辑seafile的docker-compose文件

5. 创建数据库用户

6. 启动seafile

  • 启动seafile容器时,后台会自动创建用户名为seafile的数据库用户,然后用这个用户进行数据库操作

  • 由于这个新创建的用户的密码验证插件也没修改,会导致后续的数据库操作发生异常,所以需要再手动修改这个用户的密码验证插件,然后再重启seafile,就可以正常使用了

启动seafile,然后通过日志看一下刚刚创建的seafile用户的密码

如果上面的配置文件修改正常,可以在这个地方看到seafile用户的密码,红框框住的部分,被我打了码

红框部分就是seafile用户的密码

然后进数据库,修改seafile用户的密码验证插件

最后,重启seafile,可以正常使用了



docker部署seafile踩坑日记的评论 (共 条)

分享到微博请遵守国家法律