
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
Seafile 是一款"下一代开源云存储,具备高级文件同步、隐私保护和团队协作功能"。
本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 10001:10001 -p 12001:12001 -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=seafileadmin@yourdomain.com" \ sudokeys/seafile
如果使用现有数据库,需要提供数据库的mysql用户、密码及数据库名称(或使用默认名称)。
⚠️ 注意:Seafile安装时数据库必须为空,否则会崩溃!
示例:
bashdocker run -d --name "myseafile" \ -p 10001:10001 -p 12001:12001 -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=seafileadmin@yourdomain.com" \ -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=admin@yourdomain.com" -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=admin@yourdomain.com" -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管理员***,默认seaadmin@sea.comSEAFILE_IP:用于Nginx配置的IP或域名,必填,无默认值CCNET_NAME:Seafile安装时的服务器名称,默认my-seafileCCNET_PORT:CCNET守护进程端口,默认10001SEAFILE_PORT:Seafile服务器端口,默认12001FILESERVER_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:默认https://$NAME.$DOMAIN/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:默认1209600(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 10001:10001 -p 12001:12001 -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
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务
以下是 bretif/seafile 相关的常用 Docker 镜像,适用于 不同场景 等不同场景: