树莓派seafile社区版最新Docker镜像(8.0.3)

Seafile是非常优秀的国产云盘, 有成熟的自部署能力. 而且官方提供了支持arm64架构的[安装包], (https://github.com/haiwen/seafile-rpi/releases)

显然作为懒癌和完美主义患者, 是根本不可能去手动安装包括seafile, mariadb, nginx, memcached等繁琐麻烦的步骤的. 我们的目标只有一个--无脑!
解决方案就是docker镜像,

  1. 无脑秒启动, 不需要任何安装步骤.
  2. 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部分