用 Docker 方式部署 Seafile 专业版

关于

如果您并不熟悉 Docker 的命令,请参考docker文档.

部署 Seafile 7.x.x

从7.0开始,我们调整了seafile-docker 镜像的架构,使用多个容器来运行 Seafile 服务。旧版本的镜像中,除了运行 Seafile 服务本身之外,还负责运行 MariaDB-Server、Memcached 以及 Elasticsearch。现在,我们从 Seafile 镜像中剥离出 MariaDB-Server、Memcached 和 Elasticsearch 服务,并在各自的容器中运行它们。

如果您计划使用 docker 全新部署 Seafile 7.0,请参考部署文档

如果您计划从 6.3 升级到 7.0,则可以参考升级文档

部署 Seafile 6.x.x

快速开始

运行 Seafile 服务容器:

docker run -d --name seafile \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -v /opt/seafile-data:/shared \
  -p 80:80 \
  docker.seafile.top/seafileltd/seafile-pro:latest

第一次运行会进行初始化,等待几分钟然后通过访问http://seafile.example.com查看 Seafile 的Web界面.

这条命令会将宿主机上的/opt/seafile-data目录挂载到 Seafile 容器中,你可以在这里找到日志或其他的数据文件.

安装授权文件(seafile-license.txt)

如果您已经向 Seafile 软件商购买了专业版的授权文件seafile-license.txt,您只需要将该授权文件拷贝至/opt/seafile-data/seafile/目录下,然后重启docker容器,即可完成授权文件的安装。 在您的宿主机上执行执行以下操作:

mkdir -p /opt/seafile-data/seafile/
cp /path/to/seafile-license.txt /opt/seafile-data/seafile/

然后重启这个容器:

docker restart seafile

更多配置选项

自定义管理员用户名和密码

默认的管理员账号以及密码分别为me@example.comasecret. 你可以通过设置容器的环境变量来改变初始化时生成的管理员的账号和密码.

比如:

docker run -d --name seafile \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -e SEAFILE_ADMIN_EMAIL=me@example.com \
  -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password \
  -v /opt/seafile-data:/shared \
  -p 80:80 \
  docker.seafile.top/seafileltd/seafile-pro:latest

如果您忘记了管理员密码,你可以添加一个新的管理员账号,然后通过这个新的管理员账号重置之前的管理员密码.

向Let's encrypt申请SSL证书

如果您设置SEAFILE_SERVER_LETSENCRYPTtrue, 那么容器会自动根据设置的主机名向Let's encrypt申请SSL证书

比如:

docker run -d --name seafile \
  -e SEAFILE_SERVER_LETSENCRYPT=true \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -e SEAFILE_ADMIN_EMAIL=me@example.com \
  -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password \
  -v /opt/seafile-data:/shared \
  -p 80:80 \
  -p 443:443 \
  docker.seafile.top/seafileltd/seafile-pro:latest

如果你想使用已经拥有的SSL证书:

修改 Seafile 服务的配置

Seafile 服务的配置会存放在/shared/seafile/conf目录下,你可以根据 Seafile手册 修改配置

修改之后需要重启容器.

docker restart seafile

查询日志

Seafile 服务的日志会存放在/shared/logs/seafile目录下, 由于是将/opt/seafile-data挂载到/shared,所以同样可以在宿主机上的/opt/seafile-data/logs/seafile目录下找到.

系统日志会存放在/shared/logs/var-log目录下.

添加新的管理员

确保您的容器正在运行,然后输入以下命令:

docker exec -it seafile /opt/seafile/seafile-server-latest/reset-admin.sh

然后根据提示输入用户名以及密码即可

目录结构

/shared

共享卷的挂载点,您可以选择在容器外部存储某些持久性信息.在这个项目中,我们会在外部保存各种日志文件和上传目录。 这使您可以轻松重建容器而不会丢失重要信息。

升级 Seafile 服务

如果您计划从 6.3 升级到 7.0,则可以参考升级文档

如果您计划升级到 Seafile 6.3 系列的最新版本:

docker pull docker.seafile.top/seafileltd/seafile-pro:latest
docker rm -f seafile
docker run -d --name seafile \
  -e SEAFILE_SERVER_LETSENCRYPT=true \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -e SEAFILE_ADMIN_EMAIL=me@example.com \
  -e SEAFILE_ADMIN_PASSWORD=a_very_secret_password \
  -v /opt/seafile-data:/shared \
  -p 80:80 \
  -p 443:443 \
  docker.seafile.top/seafileltd/seafile-pro:latest

如果您是使用launcher脚本的最先一批用户,您应该参考从旧的结构升级.

问题排查方法

如果您在使用的过程中出现问题,您可以运行"docker exec"等docker命令来寻找更多的错误信息.

docker exec -it seafile /bin/bash

Last modified by Daniel Pan, 2019-06-19

关于
部署 Seafile 7.x.x
部署 Seafile 6.x.x
快速开始
安装授权文件(seafile-license.txt)
更多配置选项
目录结构
升级 Seafile 服务
问题排查方法