
bretif/seafileSeafile 是一款"下一代开源云存储,具备高级文件同步、隐私保护和团队协作功能"。
本Dockerfile提供了运行Seafile的环境,Seafile将使用默认参数自动配置,并在容器启动时运行。
您可以使用mysql/mariadb容器或任何已安装的数据库。
bashdocker run -d --name="mariadb" sudokeys/mariadb
bashdocker logs mariadb
该镜像安装Seafile并根据Dockerfile中的默认环境变量及运行时提供的变量进行配置。Seafile可以自动创建数据库,也可以使用已有的(空)数据库。
无论哪种情况,您至少需要提供监听接口的IP地址以及一些用户/密码信息。如果未指定密码,系统将在可能的情况下随机生成并写入"docker logs"。
如果希望Seafile自动创建数据库,需要提供root用户和密码。您也可以指定Seahub管理员***(若不指定则使用默认值)。
示例:
bashdocker run -d --name "myseafile" \ -p ***:*** -p ***:*** -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "CCNET_IP=192.168.0.100" -e "MYSQL_ROOT_USER=dataadmin" \ -e "MYSQL_ROOT_PASSWORD=rootpass" -e "SEAHUB_ADMIN_EMAIL=***" \ sudokeys/seafile
如果使用现有数据库,需要提供数据库的mysql用户、密码及数据库名称(或使用默认名称)。
⚠️ 注意:Seafile安装时数据库必须为空,否则会崩溃!
示例:
bashdocker run -d --name "myseafile" \ -p ***:*** -p ***:*** -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "CCNET_IP=192.168.0.100" -e "EXISTING_DB=true" -e "SEAHUB_ADMIN_EMAIL=***" \ -e "MYSQL_USER=myseafileuser" -e "MYSQL_PASSWORD=myseafilepass" \ sudokeys/seafile
首先运行Nginx容器,并挂载存储静态文件的卷:
bashdocker run -d --name nginx -p 80:80 -p 443:443 -v /opt/seafile/nginx sudokeys/nginx
运行Seafile时使用--volumes-from允许其创建配置文件、SSL证书并复制静态文件。SEAFILE_IP可使用容器静态IP、主机IP(若暴露端口)或DNS发现(如skydock/skydns,本示例使用)。
bashdocker run -d --name "myseafile" -e fcgi=true -e autonginx=true -e "CCNET_IP=myfiles.mydomain.com" \ -e "MYSQL_ROOT_USER=root" -e "MYSQL_ROOT_PASSWORD=rootpass" \ -e "SEAHUB_ADMIN_EMAIL=***" -e "SEAFILE_IP=myseafile.seafile.dev.docker" \ -e "MYSQL_HOST=mydatabase.mariadb.dev.docker" --volumes-from nginx seafile
每次启动新的Seafile容器后,需重启Nginx以重新加载配置:
bashdocker restart nginx
可指定Nginx的SSL密钥和证书。若未指定,将生成自签名证书。如需使用自有证书,需挂载包含证书的主机卷,并通过环境变量NGINX_SSL_KEY和NGINX_SSL_CERT指定路径。示例:
bashdocker run -d --name "myseafile" -e fcgi=true -e autonginx=true -e "CCNET_IP=myfiles.mydomain.com" \ -e "MYSQL_ROOT_USER=root" -e "MYSQL_ROOT_PASSWORD=rootpass" \ -e "SEAHUB_ADMIN_EMAIL=***" -e "SEAFILE_IP=myseafile.seafile.dev.docker" \ -e "MYSQL_HOST=mydatabase.mariadb.dev.docker" \ -e "NGINX_SSL_KEY=/etc/nginx/certs/myseafile.key" -e "NGINX_SSL_CERT=/etc/nginx/certs/myseafile.cert" \ --volumes-from nginx seafile
以下是所有环境变量及其默认值:
AUTO_START:Seafile守护进程是否自动启动,默认trueDOMAIN:Seafile安装时要求的IP或域名,必填,无默认值SEAHUB_ADMIN_EMAIL:Seafile管理员***,默认***SEAFILE_IP:用于Nginx配置的IP或域名,必填,无默认值CCNET_NAME:Seafile安装时的服务器名称,默认my-seafileCCNET_PORT:CCNET守护进程端口,默认***SEAFILE_PORT:Seafile服务器端口,默认***FILESERVER_PORT:文件服务器端口,默认8082SEAHUB_PORT:Seahub端口,默认8000AUTO_CONF_DB:是否自动创建数据库(需设置DB_ROOT_*变量),默认trueSEAHUB_DB_NAME:Seahub数据库名称,默认seahub-dbCCNET_DB_NAME:CCNET数据库名称,默认ccnet-dbSEAFILE_DB_NAME:Seafile数据库名称,默认seafile-dbMYSQL_HOST:MariaDB/MySQL主机IP或DNS,默认mysql-containerMYSQL_PORT:MariaDB/MySQL端口,默认3306MYSQL_ROOT_USER:MariaDB/MySQL root用户,默认rootMYSQL_ROOT_PASSWORD:MariaDB/MySQL root密码,默认rootMYSQL_USER:Seafile数据库用户,默认seafileuserMYSQL_PASSWORD:Seafile数据库用户密码,默认随机生成SEAHUB_ADMIN_PASSWORD:Seafile管理员密码,默认随机生成AUTO_CONF_NGINX:是否自动创建Nginx虚拟主机,默认falseFCGI:是否将Seahub配置为FastCGI模式(需反向代理),默认falseSTATIC_FILES_DIR:静态文件存储目录,默认/opt/seafile/nginx/NGINX_SSL_KEY:SSL密钥文件路径,默认falseNGINX_SSL_CERT:SSL证书文件路径,默认falseNGINX_URLS:添加到虚拟主机的URL,格式URL1:URL2:...URLX,默认FalseSSL_BASE_DIR:Nginx容器中证书存储路径,默认/etc/nginx/certs可配置Seahub设置,详情参考Seafile文档:
SHS_EMAIL_USE_TLS:默认FalseSHS_EMAIL_HOST:默认127.0.0.1SHS_EMAIL_HOST_USER:默认FalseSHS_EMAIL_HOST_PASSWORD:默认FalseSHS_EMAIL_PORT:默认25SHS_DEFAULT_FROM_EMAIL:默认$SEAHUB_ADMIN_EMAILSHS_SERVER_EMAIL:默认$EMAIL_HOST_USERSHS_REPO_PASSWORD_MIN_LENGTH:默认8SHS_USER_PASSWORD_MIN_LENGTH:默认6SHS_USER_PASSWORD_STRENGTH_LEVEL:默认3SHS_USER_STRONG_PASSWORD_REQUIRED:默认FalseSHS_CLOUD_MODE:默认FalseSHS_ENABLE_SIGNUP:默认FalseSHS_ACTIVATE_AFTER_REGISTRATION:默认FalseSHS_TIME_ZONE:默认UTC(参考时区列表)SHS_SITE_BASE:默认[***]SHS_SITE_NAME:默认$NAMESHS_SITE_TITLE:默认Seafile $NAMESHS_SITE_ROOT:默认/SHS_USE_PDFJS:默认TrueSHS_SEND_EMAIL_ON_ADDING_SYSTEM_MEMBER:默认TrueSHS_SEND_EMAIL_ON_RESETTING_USER_PASSWD:默认TrueSHS_FILE_PREVIEW_MAX_SIZE:默认30MSHS_SESSION_COOKIE_AGE:默认***(2周)SHS_SESSION_SAVE_EVERY_REQUEST:默认FalseSHS_SESSION_EXPIRE_AT_BROWSER_CLOSE:默认FalseSHS_ENABLE_MAKE_GROUP_PUBLIC:默认FalseSHS_ENABLE_THUMBNAIL:默认TrueSHS_THUMBNAIL_ROOT:默认/haiwen/seahub-data/thumbnail/thumb/SHS_THUMBNAIL_EXTENSION:默认pngSHS_THUMBNAIL_DEFAULT_SIZE:默认24SHS_PREVIEW_DEFAULT_SIZE:默认100Seafile目录存储在永久卷/opt/seafile中。要更新基础系统或Seafile运行选项,只需停止容器,使用docker pull sudokeys/seafile更新镜像,然后运行新容器(禁用自动配置并使用--volumes-from):
bashdocker run -d --name "myseafile2" \ -p ***:*** -p ***:*** -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "autoconf=false" \ --volumes-from myseafile \ sudokeys/seafile
要升级Seafile,需启动挂载相同卷但禁用AUTO_START的容器,然后按照Seafile升级手册执行升级流程:
bashdocker run -d --name "seafileUpdater" \ -p ***:*** -p ***:*** -p 8000:8000 -p 8082:8082 \ --link mariadb:mysql-container \ -e "autoconf=false" \ -e "AUTO_START=false" \ --volumes-from myseafile \ sudokeys/seafile






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