使用doker安装seafile ,搭建私有云盘

896 阅读3分钟

使用doker安装seafile ,搭建私有云盘

使用docker安装seafile无需提前安装mysql,非常简单

1、安装好docker和docker compose

apt-get install docker
apt-get install docker-compose -y

可能需要替换一下docker源

替换方法可参考:cloud.tencent.com/developer/a…

2、 准备/opt目录

创建/opt目录,从官网下载 docker-compose.yml ,并将 docker-compose.yml 放在该目录中

3、创建 docker-compose.yml

从官网下载 docker-compose.yml 之后修改部分参数

主要是密码和域名


services:

db:

image: mariadb:10.11

container_name: seafile-mysql

environment:

- MYSQL_ROOT_PASSWORD=db_dev # Requested, set the root's password of MySQL service.

- MYSQL_LOG_CONSOLE=true

- MARIADB_AUTO_UPGRADE=1

volumes:

- /opt/seafile-mysql/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.

networks:

- seafile-net

  


memcached:

image: memcached:1.6.18

container_name: seafile-memcached

entrypoint: memcached -m 256

networks:

- seafile-net

seafile:

image: seafileltd/seafile-mc:11.0-latest

container_name: seafile

ports:

- "83:80" # 外部端口83映射到内部端口80

# - "443:443" # If https is enabled, cancel the comment.

volumes:

- /opt/seafile-data:/shared # Requested, specifies the path to Seafile data persistent store.

environment:

- DB_HOST=db

- DB_ROOT_PASSWD=db_dev # 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=35xxx82@qq.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=159.xx.xx.98 # Specifies your host name.

depends_on:

- db

- memcached

networks:

- seafile-net

  


networks:

seafile-net:

  


4、安装seafile

运行 docker-compose.yml

docker-compose up -d

启动成功后使用 docker ps 查看容器的启动情况


root@VM-24-3-ubuntu:/opt# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

2953243cb9cb seafileltd/seafile-mc:11.0-latest "/sbin/my_init -- /s…" 20 minutes ago Up 20 minutes 0.0.0.0:83->80/tcp, :::83->80/tcp seafile

a3cc2ce8bc41 memcached:1.6.18 "memcached -m 256" 20 minutes ago Up 20 minutes 11211/tcp

docker log seafile 查看sefaile是否正常运行


root@VM-24-3-ubuntu:/opt# docker logs seafile

*** Running /etc/my_init.d/01_create_data_links.sh...

*** Booting runit daemon...

*** Runit started as PID 16

*** Running /scripts/enterpoint.sh...

2024-07-02 09:46:08 Nginx ready

2024-07-02 09:46:08 This is an idle script (infinite loop) to keep container running.

[2024-07-02 09:46:15] Now running setup-seafile-mysql.py in auto mode.

Checking python on this machine ...

最后输入:159.xx.xx.xx:83 访问seafile登录页面(注我这里的端口号是83)

image.png

参考教程

官网文档:用Docker部署Seafile.md

教程1:mrchou.com/internet/ho…

教程2:github.com/EXP-Tools/s…

教程2保存了相关配置,而且使用脚本化的方式启动很优雅,但这里使用了一个vpn网络不好直接用

遇到的些问题:

1、需要替换一下docker的源

cloud.tencent.com/developer/a…

2 最后成功安装但是报错. 我觉得是vpn地址的问题

我最开始用的是教程2,报了这个错误,后来我换了ip端口号,和network的端口号没出现这个报错了

Page unavailable
Sorry, but the requested page is unavailable due to a server hiccup.
Our engineers have been notified, so check back later.

3 docker-compose.yml部署后,数据库一直连不上

bbs.seafile.com/t/topic/190…

解决办法是,删除所有的容器

docker stop $(docker ps -q) && docker rm $(docker ps -aq) 停止和关闭所有容器

删除后重启 image.png