
bernardgut/seafileSeafile服务器Docker镜像,基于Alpine Linux构建。
Dockerfile链接6.2.5、latest - Seafile Server v6.2.5(最新版本)旧版本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。
在httpd-conf目录中提供以下配置示例:
官方Seafile Server 手册中提供Nginx和Apache的配置示例。
ccnet.conf: SERVICE_URL = [***]seahub_settings.py: FILE_SERVER_ROOT ='[***]docker restart <容器名>运行容器时可通过--env参数传递以下环境变量:
INTERACTIVE=<0|1> - 容器是否在首次运行及升级时询问配置值。默认:1(启用)SERVER_NAME=<...> - Seafile服务器名称(3-15个字母或数字),仅用于非交互模式首次运行。默认:SeafileSERVER_DOMAIN=<...> - Seafile服务器域名或IP,仅用于非交互模式首次运行。默认:seafile.domain.comSEAHUB=<fastcgi> - 设为"fastcgi"时以FastCGI模式启动seahub,留空则禁用。默认:空(非FastCGI模式)SEAFILE_FASTCGI_HOST=<ip> - FastCGI模式下seahub的绑定IP。默认:127.0.0.1HANDLE_SIGNALS=<0|1> - 是否处理SIGHUP、SIGTERM等信号(如docker stop发送的SIGTERM)。启用时脚本会循环等待信号,理论上可能略微增加CPU占用。默认:1(启用)在容器内seafile用户的主目录中,可使用以下命令:
seafile-fsck - 检查库错误(基于seaf-fsck.sh)seafile-gc - 清理库存储中未使用的旧数据(基于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:2016,GID:2016)有读写权限。
seafdav默认禁用,启用方法参见手册,启用后需开放8080端口。
若不想容器在镜像(及Seafile服务器)更新时自动升级环境,可在容器内/home/seafile目录创建空文件.no-update,命令:docker exec <容器名> touch /home/seafile/.no-update。
容器使用seafile用户运行服务,需root权限操作时,可执行:docker exec -ti --user=0 <容器名> /bin/sh。
首次运行(及每次镜像升级)时,容器会将/usr/local/share/seahub目录复制到/home/seafile/seafile-server/seahub(即数据卷中),占用约40MB空间。
目前多数Seafile脚本(位于/usr/local/share/seafile/scripts)无法正常工作,但seaf-fsck.sh和seaf-gc.sh可正常使用,且已链接为/usr/local/bin/seafile-fsck和/usr/local/bin/seafile-gc。
代理可能出现读取错误,如[error] 4766#4766: *2 open() "<seafile_dir>/seafile-server/seahub/media/avatars/default.png" failed (2: No such file or directory),原因是seafile-server/seahub/media/avatars为指向容器内/home/seafile/seahub-data/avatars的符号链接。修复方法:在<seafile_dir>/seafile-server/seahub/media目录中执行ln -s ../../../seahub-data/avatars avatars,使用相对路径链接。
本Dockerfile及脚本基于MIT许可证发布。原始构想归功于VGoshev。
Seafile和Alpine Linux有各自的许可证。






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