部署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 復制到宿主機,映射進去,這樣下次部署就方便了