
tvollstaedt/seafile基于Alpine Linux的Seafile服务器Docker镜像。
在我的Github仓库中,您可以找到一些帮助运行容器的实用脚本。
Dockerfile链接6.3.4,latest - Seafile Server v6.3.4旧版本Seafile Server的Dockerfile可在此处找到。
运行容器可使用以下命令:
bashdocker run \ -v /home/docker/seafile:/home/seafile \ -p 127.0.0.1:8000:8000 \ -p 127.0.0.1:8082:8082 \ -ti sunx/seafile
基于此镜像的容器会在首次运行时自动配置Seafile环境。若环境来自旧版本Seafile,容器会自动将其升级至最新版本(通过调用Seafile升级脚本)。
建议:升级镜像前进行数据备份,以防升级逻辑或Seafile升级脚本存在 bug 导致数据丢失。
该镜像使用2个TCP端口:
若需运行seafdav(Seafile的WebDAV服务),还将使用8080端口。
此镜像使用一个内部路径为/home/seafile的卷。
建议使用主机目录映射或命名卷运行容器,以避免镜像更新或启动新容器后丢失重要数据。
本镜像不含任何Web服务器,因为通常服务器上已运行HTTP服务器,无需额外运行(会占用CPU和内存)。若您知道轻量级带代理功能的Web服务器,欢迎提出,我将考虑集成。
Web服务器配置中,媒体目录位置应设为<卷路径>/seafile-server/seahub/media。
在httpd-conf目录中,可找到lighttpd的配置示例和haaproxy的配置示例。
Nginx和Apache的配置可参考Seafile官方手册:
运行容器时,可通过--env选项传递以下环境变量:
INTERACTIVE=<0|1> - 容器是否在首次运行时询问配置值及升级相关问题。默认值:1SERVER_NAME=<...> - Seafile服务器名称(3-15个字母或数字),仅在非交互模式首次运行时使用。默认值:SeafileSERVER_DOMAIN=<...> - Seafile服务器域名或IP,仅在非交互模式首次运行时使用。默认值:seafile.domain.comHANDLE_SIGNALS=<0|1> - 容器是否正确处理SIGHUP和SIGTERM等信号(如docker stop会发送SIGTERM)。启用信号处理后,脚本会进入无限循环等待信号,理论上可能略微增加容器CPU消耗。默认值:1(启用)SEAHUB=<fastcgi> - 是否以FastCGI模式启动seahub(设为"fastcgi"启用,留空则不启用)。默认值:空(非FastCGI模式)。注意:SeaHub的FastCGI模式已弃用,将在未来版本中移除。SEAFILE_FASTCGI_HOST=<ip> - FastCGI模式下seahub的绑定IP。默认值:127.0.0.1在容器内seafile用户的主目录中,可使用以下命令:
seafile-fsck - 检查库错误(基于seaf-fsck.sh)seafile-gc - 从Seafile库存储中移除旧的未使用数据(基于seaf-gc.sh)seafile-admin start - 启动seafile和seahub守护进程(若已停止)seafile-admin stop - 停止seafile和seahub守护进程seafile-admin reset-admin - 重置Seafile管理员用户和/或密码seafile-admin setup - 配置ccnet、seafile和seahub服务(若未自动配置)seafile-admin create-admin - 创建Seafile管理员用户(若未自动创建)确保挂载的数据卷及文件可被容器的seafile用户(默认UID:GID 2016:2016)读写。
若需启用默认禁用的seafdav,可参考其手册,并记得发布8080端口。
若不希望容器在镜像(及Seafile服务器)更新时自动升级环境,可在容器的/home/seafile目录中创建空文件.no-update,命令:docker exec <容器名称> touch /home/seafile/.no-update。
容器使用seafile用户运行Seafile,若需在容器内操作Seafile数据,可执行:docker exec -ti --user=seafile <容器名称> /bin/sh。
首次运行(及每次镜像升级)时,容器会将seahub目录从/usr/local/share/seahub复制到/home/seafile/seafile-server/seahub(即卷中),占用约40MB空间。目前暂无法在不内置Web服务器的情况下避免此操作(40MB空间在当前环境下影响较小)。
目前多数Seafile脚本(位于/usr/local/share/seafile/scripts目录)无法正常工作,但seaf-fsck.sh和seaf-gc.sh可正常使用,并通过/usr/local/bin/seafile-fsck和/usr/local/bin/seafile-gc提供。
此镜像配置为基于SQLite的Seafile服务器。若需使用MySQL/MariaDB,可手动配置,或反馈需求以添加相关配置选项。
本Dockerfile及脚本基于MIT许可证发布。
Seafile和Alpine Linux有各自的许可证。






manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务