• docker-compose.yml
services:
db:
    image: mariadb:10.11
    container_name: seafile-mysql
    environment:
      - MYSQL_ROOT_PASSWORD=12345678  # Requested, set the root's password of MySQL service.
      - MYSQL_LOG_CONSOLE=true
    security_opt:
      - seccomp:unconfined
    volumes:
      - /work/seafile/db:/var/lib/mysql  # Requested, specifies the path to MySQL data persistent store.
    networks:
      - seafile-net
    restart: always
  memcached:
    image: memcached:1.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net
    restart: always
         
  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "8000:80"
#      - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - /work/seafile/seafile-data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=db
      - DB_ROOT_PASSWD=12345678  # 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.
      - SEAFILE_ADMIN_EMAIL=me@example.com # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=seafile.example.com # Specifies your host name.
    depends_on:
      - db
      - memcached
    networks:
      - seafile-net
    restart: always

networks:
  seafile-net:

  

  •  启动

docker-compose up -d

  • 日志

docker-compose logs -f

  • 备份数据库
cd /opt/seafile-backup/databases
docker exec -it seafile-mysql mysqldump -uroot -p12345678 --opt ccnet_db > ccnet_db.sql
docker exec -it seafile-mysql mysqldump -uroot -p12345678 --opt seafile_db > seafile_db.sql
docker exec -it seafile-mysql mysqldump -uroot -p12345678 --opt seahub_db > seahub_db.sql
  • 垃圾回收

docker exec seafile /scripts/gc.sh

  • Nginx reload

docker exec seafile nginx -s reload

  • 恢复数据库:

docker cp ccnet-db-2023-11-01.sql seafile-mysql:/tmp/ccnet_db.sql
docker cp seafile-db-2023-11-01.sql seafile-mysql:/tmp/seafile_db.sql
docker cp seahub-db-2023-11-01.sql seafile-mysql:/tmp/seahub_db.sql

docker exec -it seafile-mysql /bin/sh -c "mysql -uroot -p12345678 ccnet_db < /tmp/ccnet_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot -p12345678 seafile_db < /tmp/seafile_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot -p12345678 seahub_db < /tmp/seahub_db.sql"

  • 恢复 seafile 数据:

cp -R /opt/seafile-backup/data/* /opt/seafile-data/seafile/