部署seafile
docker-compose.yml 如下:
参考此篇文章
version: '2.0'
services:
db:
image: mariadb:10.1
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # mysql root的密码,同时修改 seafile的DB_ROOT_PASSWD与这个一致
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # mysql 数据持久化挂载路径。修改冒号前面的。
networks:
- seafile-net
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:
- "80:80"
volumes:
- /opt/seafile-data:/shared # seafile 文件持久化路径。修改冒号前面的
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_dev # 必须与上面的mysql 密码一致
- SEAFILE_ADMIN_EMAIL=admin@example.com # seafile admin的邮箱账户
- SEAFILE_ADMIN_PASSWORD=asecret # seafile admin的用户名密码
depends_on:
- db
- memcached
networks:
- seafile-net
onlyoffice:
image: onlyoffice/documentserver
container_name: onlyoffice
ports:
- "8080:80"
networks:
seafile-net:
设置onlyoffice
编辑seafile配置文件
docker exec -it seafile bash
vim conf/seahub_settings.py
在最后面添加如下内容:
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = False
ONLYOFFICE_APIJS_URL = 'http://10.110.25.201:8080/web-apps/apps/api/documents/api.js' #ip 改为 本机ip
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
退出后,重启容器 docker restart seafile
登录管理员后台修改seafile地址
管理员界面配置,需要正确填写,这样onlyoffice才能和seafile正常通信,改为 http://<机器ip:端口>
和 http://<机器ip:端口>/seafhttp
。
添加防火墙允许seafile端口
如果打开seafile界面查看私人资料库下的 seafile-tutorial.doc 文件,一直显示打开中,则需要在防火墙里添加seafile的端口
比如 ubuntu 18, ufw allow 8080
,centos 7 firewall-cmd --zone=public --add-port=8080/tcp --permanent && firewall-cmd --reload
具体原因是docker不能访问宿主机中的端口,详见此文
ldap 配置
详见此文档
docker exec -it seafile bash
vi conf/ccnet.conf
总结
可以把 conf/seahub_settings.py 和 conf/ccnet.conf 复制到宿主机,映射进去,这样下次部署就方便了