docker部署seafile9.0(专业版)文件共享
本次部署环境:
1 2
| 操作系统:centos7.6 服务器配置:2H4G
|
参考官方部署链接:https://cloud.seafile.com/published/seafile-manual-cn/docker/pro-edition/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md
seafile9.0(专业版)docker-compose.yaml文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| version: '2.0' services: db: image: mariadb:10.5 container_name: seafile-mysql environment: - MYSQL_ROOT_PASSWORD=a123456 # 设置数据库密码,另外需要移除原本安装的mysql,占用3306端口,当然如果改端口除外 - MYSQL_LOG_CONSOLE=true volumes: - /home/seafile/mysql:/var/lib/mysql # 配置容器映射本地目录 networks: - seafile-net
memcached: image: memcached:1.6 container_name: seafile-memcached entrypoint: memcached -m 256 networks: - seafile-net
elasticsearch: image: elasticsearch:7.16.2 container_name: seafile-elasticsearch environment: - discovery.type=single-node - bootstrap.memory_lock=true - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms1g -Xmx1g" volumes: - /home/seafile/elasticdata:/usr/share/elasticsearch/data # 修改es容器映射本地目录. networks: - seafile-net
seafile: image: docker.seafile.top/seafileltd/seafile-pro-mc:latest container_name: seafile ports: - "9090:80" # 修改宿主机端口与容器业务端口映射,我用的9090,部署后可以IP:9090访问 # - "4433:443" # 如果启用ssl,需要取消注释. volumes: - /home/seafile/data:/shared # 映射容器目录. environment: - DB_HOST=db - DB_ROOT_PASSWD=a2883076 # 配置上面数据的root密码. # - TIME_ZONE=Asia/Shanghai - SEAFILE_ADMIN_EMAIL=644183866@qq.com # 配置管理员账号,默认是'me@example.com' - SEAFILE_ADMIN_PASSWORD=a1314520 # 配置管理员密码 ,默认是'asecret' - SEAFILE_SERVER_LETSENCRYPT=false # 是否使用https - SEAFILE_SERVER_HOSTNAME=106.52.95.14 # 如果使用https,则需要指定主机 depends_on: - db - memcached - elasticsearch networks: - seafile-net
networks: seafile-net:
|
注意:seafile 9.0 版本,需要手动在宿主机上创建 elasticsearch 的映射路径,并且给 777 权限,否则 elasticsearch 启动会报路径权限问题,命令如下
1
| mkdir -p /home/seafile/elasticdata && chmod 777 -R /home/seafile/elasticdata
|
在docker-compose.yaml的目录下执行命令启动 Seafile 服务
等待一会,显示容器已经下镜像,并且启动成功了,一共4个容器。通过ip:端口访问。
配置域名访问
通过宝塔创建网站(如果不使用宝塔的话,自行在Nginx里配置域名转发)

配置反向代理,点击新建网站的–设置–反向代理,填入如下内容:

保存后,点击刚刚建的反向代理–配置文件,覆盖为下面的内容:
1 2 3 4 5 6 7 8 9 10 11 12
| #PROXY-START/ location / { proxy_pass http://127.0.0.1:9090; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Host $server_name; proxy_read_timeout 1200s; client_max_body_size 0; }
#PROXY-END/
|
现在就可以用配置的域名访问seafile了,记得在域名运营商配置域名解析。
配置webdav
进入seafile容器,找到配置文件seafdav.conf,一般在docker-compose.yml配置的安装目录里conf文件夹
1 2 3 4 5
| [root@VM-8-17-centos seafile]# docker exec -it seafile /bin/bash root@d7f47cc5c972:/opt/seafile# cd conf/ root@d7f47cc5c972:/opt/seafile/conf# pwd /opt/seafile/conf root@d7f47cc5c972:/opt/seafile/conf# vim seafdav.conf
|
编辑配置文件开启webdav,我这里设置了访问路径/seafdav
1 2 3 4 5
| [WEBDAV] enabled = true port = 8080 fastcgi = false share_name = /seafdav
|
保存配置后,返回上一层目录,进入/seafile-pro-server-9.0.5目录,执行重启服务
1 2
| root@d7f47cc5c972:/opt/seafile# cd seafile-pro-server-9.0.5/ root@d7f47cc5c972:/opt/seafile/seafile-pro-server-9.0.5# ./seafile.sh restart
|
此时我就可以通过webdav协议从ip:9090/seafdav或 域名/seafdav访问到网盘了