在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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM