树莓派seafile社区版最新Docker镜像(8.0.3)
Seafile是非常优秀的国产云盘, 有成熟的自部署能力. 而且官方提供了支持arm64架构的[安装包], (https://github.com/haiwen/seafile-rpi/releases)
显然作为懒癌和完美主义患者, 是根本不可能去手动安装包括seafile, mariadb, nginx, memcached等繁琐麻烦的步骤的. 我们的目标只有一个--无脑!
解决方案就是docker镜像,
- 无脑秒启动, 不需要任何安装步骤.
- All in one, 相关数据库配置和web代理服务器直接启动.
可惜官方和社区都没有非常合适的镜像包,或者可以马上用的Dockfile也没有. 我这里提供一个最新版本的Dockfile, 懒得自己打包的直接使用即可. 此Dockfile直接在官方分支基础上进行轻微修改, 且直接是下载并将seafile官方树莓派版本安装包打入镜像, 因此可以保证和手动安装没有区别. 我已经在树莓派4B上长期使用, 并能跟踪打包更新.
直接使用我已经打好的docker镜像
直接 docker pull jmujmu/seafile-pi:8.0.3
即可
更多信息在我的dockerhub查看
如果选择使用已打好镜像, 编译步骤可跳过.
此镜像使用mariadb, 如果需要mysqldb, 请走下面手动编译镜像步骤.
编译seafile镜像(可选)
我查阅了网络上大量中英文的镜像打包文件, 都不太满意. 有的是自己干了一遍和官方相差太远, 有的是年久失修, 已经跑不起来了. 我从官方的Dockfile文件fork出来, 可以保证最大程度的同步. github地址: https://github.com/jmu/seafile-docker 跟随项目中README自行在树莓派上打包即可.
镜像启动
使用下面文件, 修改账号密码等配置,保存为docker-compose.yml 文件, 直接在所在目录docker-compose up -d
启动即可, 大功告成.
version: '2.0'
services:
db:
image: mariadb:10.5
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=xxxx # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: jmujmu/seafile-pi:8.0.3
container_name: seafile
ports:
- "8003:80"
- "8001:443" # If https is enabled, cancel the comment.
volumes:
- /seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.
- /docker/ssl:/etc/ssl
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=xxxx # Requested, the value shuold be root's password of MySQL service.
- TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
- [email protected] # Specifies Seafile admin user, default is '[email protected]'.
- SEAFILE_ADMIN_PASSWORD=xxxx # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether use letsencrypt to generate cert.
- SEAFILE_SERVER_HOSTNAME=file.xxxx.com # Specifies your host name.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
以上配置来自seafile官方帮助文档的docker-compose部分