• 在CentOS下利用Docker一键安装seafile


    https://cloud.seafile.com/published/seafile-manual-cn/docker/pro-edition/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md

    官方教程写的不够详细,特记录一下。

    1. 安装docker及docker-compose

      具体见本博客相关文章。

    2.下载并修改一键安装脚本

    https://docs.seafile.com/d/cb1d3f97106847abbf31/files/?p=/docker/pro-edition/docker-compose.yml

     1 version: '2.0'
     2 services:
     3   db:
     4     image: mariadb:10.1
     5     container_name: seafile-mysql
     6     environment:
     7       - MYSQL_ROOT_PASSWORD=db_dev  # MySQL root 用户的密码 Requested, set the root's password of MySQL service.
     8       - MYSQL_LOG_CONSOLE=true
     9     volumes:
    10       - /opt/seafile-mysql/db:/var/lib/mysql  # 持久化存储 MySQL 数据的 volumes 目录 Requested, specifies the path to MySQL data persistent store.
    11     networks:
    12       - seafile-net
    13 
    14   memcached:
    15     image: memcached:1.5.6
    16     container_name: seafile-memcached
    17     entrypoint: memcached -m 256
    18     networks:
    19       - seafile-net
    20 
    21   elasticsearch:
    22     image: seafileltd/elasticsearch-with-ik:5.6.16
    23     container_name: seafile-elasticsearch
    24     environment:
    25       - discovery.type=single-node
    26       - bootstrap.memory_lock=true
    27       - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
    28     ulimits:
    29       memlock:
    30         soft: -1
    31         hard: -1
    32     mem_limit: 2g
    33     volumes:
    34       - /opt/seafile-elasticsearch/data:/usr/share/elasticsearch/data  # 持久化存储 Elasticsearch 索引数据的 volumes 目录Requested, specifies the path to Elasticsearch data persistent store.
    35     networks:
    36       - seafile-net
    37           
    38   seafile:
    39     image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
    40     container_name: seafile
    41     ports:
    42       - "80:80"
    43 #     - "443:443"  # If https is enabled, cancel the comment.
    44     volumes:
    45       - /opt/seafile-data:/shared   # 持久化存储 Seafile 数据的 volumes 目录  Requested, specifies the path to Seafile data persistent store.
    46     environment:
    47       - DB_HOST=db
    48       - DB_ROOT_PASSWD=db_dev  # Requested, the value shuold be root's password of MySQL service.
    49 #      - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
    50       - SEAFILE_ADMIN_EMAIL=me@example.com # 管理员账号Specifies Seafile admin user, default is 'me@example.com'
    51       - SEAFILE_ADMIN_PASSWORD=asecret     # Specifies Seafile admin password, default is 'asecret'
    52       - SEAFILE_SERVER_LETSENCRYPT=false   # Whether to use https or not
    53       - SEAFILE_SERVER_HOSTNAME=example.seafile.com # Specifies your host name if https is enabled
    54     depends_on:
    55       - db
    56       - memcached
    57       - elasticsearch
    58     networks:
    59       - seafile-net
    60 
    61 networks:
    62   seafile-net:

    根据您的实际环境修改该文件。尤其是以下几项配置:

    • MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)

    • 持久化存储 MySQL 数据的 volumes 目录 (volumes)

    • 持久化存储 Seafile 数据的 volumes 目录 (volumes)

    • 持久化存储 Elasticsearch 索引数据的 volumes 目录 (volumes)

    3. 如果按照专业版的话

    注册帐号,打开seafile的英文网页,去下载区,有如下信息

    You can download pro editions from https://download.seafile.com/d/×××××××××/?p=/pro.

    If you are deploying Seafile Pro with Docker, type docker login docker.seadrive.org, then input username seafile, password zj×××××dZ=u×××uWS.

    必须有此帐号登录过程,不然第4步执行过程中会被拒绝。

    4. 安装

    在 docker-compose.yml文件所在的目下执行以下命令启动 Seafile 服务

    docker-compose up -d

    根据网速不同,需要等待些许时间,等容器首次启动时的初始化操作完成后,您就可以在浏览器上访问http://seafile.example.com 来打开 Seafile 主页。

     

    Seafile 目录结构

    /shared

    共享卷的挂载点,您可以选择在容器外部存储某些持久性信息.在这个项目中,我们会在外部保存各种日志文件和上传数据。 这使您可以轻松重建容器而不会丢失重要信息。

    • /shared/seafile: Seafile 服务的配置文件,日志文件以及数据文件

      • /shared/seafile/logs: Seafile 服务运行产生的日志文件目录。比如您可以在 /shared/seafile/logs/seafile.log 文件中看到 seaf-server 的日志

      • /shared/seafile/seafile-data: 如果您没有配置S3或者OSS等对象存储,那么用户上传的数据将会存放到该目录下。

    • /shared/logs: 日志目录

      • /shared/logs/var-log: 我们将容器内的/var/log链接到本目录。您可以在/shared/logs/var-log/nginx/中找到 nginx 的日志文件

    • /shared/ssl: 存放证书的目录,默认不存在

    备份和恢复

    目录结构

    我们假设您的 seafile 数据卷路径是 /opt/seafile-data,并且您想将备份数据存放到 /opt/seafile-backup 目录下。

    您可以创建一个类似以下 /opt/seafile-backup 的目录结构:

    /opt/seafile-backup

    ---- databases/ 用来存放 MySQL 容器的备份数据

    ---- data/ 用来存放 Seafile 容器的备份数据

    要备份的数据文件:

    /opt/seafile-data/seafile/conf # configuration files

    /opt/seafile-data/seafile/seafile-data # data of seafile

    /opt/seafile-data/seafile/seahub-data # data of seahub

    备份数据

    步骤:

    1. 备份 MySQL 数据库数据;

    2. 备份 Seafile 数据目录;

    • 备份数据库:

      # 建议每次将数据库备份到一个单独的文件中。至少在一周内不要覆盖旧的数据库备份。

      cd /opt/seafile-backup/databases

      docker exec -it seafile-mysql mysqldump -uroot --opt ccnet_db > ccnet_db.sql

      docker exec -it seafile-mysql mysqldump -uroot --opt seafile_db > seafile_db.sql

      docker exec -it seafile-mysql mysqldump -uroot --opt seahub_db > seahub_db.sql

    • 备份 Seafile 资料库数据:

      • 直接复制整个数据目录

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

        cd /opt/seafile-backup/data && rm -rf ccnet

      • 使用 rsync 执行增量备份

        rsync -az /opt/seafile-data/seafile /opt/seafile-backup/data/

        cd /opt/seafile-backup/data && rm -rf ccnet

    恢复数据

    • 恢复数据库:

      docker cp /opt/seafile-backup/databases/ccnet_db.sql seafile-mysql:/tmp/ccnet_db.sql

      docker cp /opt/seafile-backup/databases/seafile_db.sql seafile-mysql:/tmp/seafile_db.sql

      docker cp /opt/seafile-backup/databases/seahub_db.sql seafile-mysql:/tmp/seahub_db.sql

       

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

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

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

    • 恢复 seafile 数据:

      cp -R /opt/seafile-backup/data/* /opt/seafile-data/seafile/
  • 相关阅读:
    mysql------Windows7 64bit安装教程------下载mysql
    [org.springframework.context.annotation.ComponentScanBeanDefinitionParser] are only available on JDK 1.5 and higher 问题--MyEclipse设置JDK版本
    码云Gitee上新建项目教程
    远程桌面无法复制粘贴
    Submine Text3格式化HTML/CSS/JS代码
    FTP上传文件,报错java.net.SocketException: Software caused connection abort: recv failed
    在MyEclipse使用Git新建分支,并上传分支---图文教程
    使用Git Bash上传代码到新的分支
    使用Git Bash从Git上下载代码到本地以及上传代码到码云Git
    安装Git Bash图文教程
  • 原文地址:https://www.cnblogs.com/flyflit/p/13088629.html
Copyright © 2020-2023  润新知