docker部署seafile踩坑日記
本文基于seafile 10.0.1版本實(shí)現(xiàn)
1. 前言
目前seafile官方docker部署方式存在以下問題:
不能指定mysql端口
不能使用mysql8數(shù)據(jù)庫
如果想用mysql8數(shù)據(jù)庫,需要修改用戶的密碼驗(yàn)證插件,但我又不想修改root用戶的密碼驗(yàn)證插件,那么就需要單獨(dú)指定seafile的root用戶,給這個(gè)root用戶使用舊版密碼驗(yàn)證插件,由此又引來另一個(gè)問題:
不能指定root用戶名
默認(rèn)http只能用80端口訪問,修改docker端口映射后無法訪問
2.?配置文件修改
具體修改的地方說明:
修改bootstrap.py,增加mysql端口配置,增加root用戶配置,修改seafile用戶域名(從%.%.%.%修改成%)
修改utils.py,增加讀取mysql端口和root用戶名配置
修改setup-seafile-mysql.py,root用戶名和mysql端口從配置獲取
修改seafile.nginx.conf.template,在location /配置下修改proxy_set_header Host $host[:12345],后面的端口改為你實(shí)際映射的端口,如果是通過nginx反向代理訪問,需要改成nginx代理的端口
先把配置文件復(fù)制出來
然后按照?qǐng)D示修改各配置文件,左邊為修改前,右邊為修改后
setup-seafile-mysql.py







bootstrap.py:

utils.py:

seafile.nginx.conf.template

3.?創(chuàng)建自定義鏡像
4. 修改docker-compose文件
首先需要?jiǎng)?chuàng)建一個(gè)docker網(wǎng)絡(luò),用于容器間的相互訪問,并且讓mysql容器也加入到這個(gè)網(wǎng)絡(luò)
然后編輯seafile的docker-compose文件
5.?創(chuàng)建數(shù)據(jù)庫用戶
6. 啟動(dòng)seafile
啟動(dòng)seafile容器時(shí),后臺(tái)會(huì)自動(dòng)創(chuàng)建用戶名為seafile的數(shù)據(jù)庫用戶,然后用這個(gè)用戶進(jìn)行數(shù)據(jù)庫操作
由于這個(gè)新創(chuàng)建的用戶的密碼驗(yàn)證插件也沒修改,會(huì)導(dǎo)致后續(xù)的數(shù)據(jù)庫操作發(fā)生異常,所以需要再手動(dòng)修改這個(gè)用戶的密碼驗(yàn)證插件,然后再重啟seafile,就可以正常使用了
啟動(dòng)seafile,然后通過日志看一下剛剛創(chuàng)建的seafile用戶的密碼
如果上面的配置文件修改正常,可以在這個(gè)地方看到seafile用戶的密碼,紅框框住的部分,被我打了碼

然后進(jìn)數(shù)據(jù)庫,修改seafile用戶的密碼驗(yàn)證插件
最后,重啟seafile,可以正常使用了