docker部署seafile

一、环境准备

主机:centos7.8

工具:docker和docker-compose

二、容器mysql数据库

1、规划空间创建mysql目录。我这里直接在/下创建了

mkdir /mysql

2、mysql目录下创建一个docker-compose.yml

version: "3"
services:
  mysql:
    image: mysql:5.7 # 使用 mysql5.7 版本的镜像
    container_name: mysql # 容器名称
    restart: always # 自动重启策略
    ports:
      - 3306:3306 # 映射到宿主机的端口
    volumes:
      - ./conf.d:/etc/mysql/conf.d # 配置文件挂载的宿主机目录
      - ./data:/var/lib/mysql # 数据文件挂载的宿主机目录
    environment:
      - MYSQL_ROOT_PASSWORD=123456 # 初始的 root 用户的密码

3、当前目录下执行

docker-compose up --build -d

三、容器seafile

1、规划空间创建seafile目录。我这里直接在/下创建了

mkdir /seafile

2、seafile目录下创建一个docker-compose.yml

version: '2.0'
services:
  memcached:
    image: memcached:1.5.6
    container_name: seafile-memcached
    entrypoint: memcached -m 256
    networks:
      - seafile-net

  seafile:
    image: seafileltd/seafile-mc:latest
    container_name: seafile
    ports:
      - "9090:80"
#      - "443:443"  # If https is enabled, cancel the comment.
    volumes:
      - ./data:/shared   # Requested, specifies the path to Seafile data persistent store.
    environment:
      - DB_HOST=10.0.0.100
      - DB_ROOT_PASSWD=123456  # 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=root # Specifies Seafile admin user, default is 'me@example.com'.
      - SEAFILE_ADMIN_PASSWORD=123456     # Specifies Seafile admin password, default is 'asecret'.
      - SEAFILE_SERVER_LETSENCRYPT=false   # Whether use letsencrypt to generate cert.
      - SEAFILE_SERVER_HOSTNAME=seafile.ldy.cn # Specifies your host name.
    depends_on:
      - memcached
    networks:
      - seafile-net

networks:
  seafile-net:

到时候它会自动创建有关seafile的用户和数据库。

3、当前目录下执行

docker-compose up -d

需要等待几分钟,等容器首次启动时的初始化操作完成后。刚开始可能会报502错误。
发现当前目录下自动创建了data目录。并且seafile容器就已经启动了。
在这里插入图片描述

四、排错

1、502报错

在这里插入图片描述

docker logs seafile

查看日志,发现是数据库连接的问题。
在这里插入图片描述
发现自己的docker-compose.yml文件里面没有填写错误,可能就是数据库root禁止所有其他ip登录。
修改root登录的权限。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
show grants for root;  #查看root权限
SELECT * FROM mysql.user\G;   #查看用户
show grants for seafile@"%.%.%.%";  #查看seafile用户权限

然后将重启mysql容器,我们做了持久化,所以重新建立也没事。
发现seafile就搭建成功。

2、上传文件失败

在这里插入图片描述
由于我们在docker-compose.yml文件中设置的server-hostname是一个域名,我这里没有DNS解析,所以上传不成功。
在这里插入图片描述
在这里插入图片描述
然后我设置为ip即可
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值