能否给Docker镜像里的nginx配置改为一次性生成


#1

Windows Server 2019 Datercenter,Docker for windows,MySQL(windows版),Seafile(docker.seafile.top/seafileltd/seafile-pro-mc:latest)

目前基本完美部署,但有一些小问题,因为Seafile处于Hyper-V虚拟机中,加上我的Server2019所处网络环境并不能用80和443端口访问,所以需要做端口映射和反向代理

镜像中自带的Nginx已经将反向代理配置好了,但我这种情况需要对conf做点小改动,后来发现每次启动后nginx的配置文件都是自动生成覆盖,就算是用volume将路径挂载到Windows本地都不行

所以想问一下能不能将镜像启动时生成Nginx的配置改为一次性?
或者告知一下启动的时候哪个脚本控制生成的Nginx配置内容(具体路径是/etc/nginx/sites-enabled/seafile.nginx.conf)

我不知道用volume挂载路径后将配置文件改为“只读”能不能阻止Docker的自动覆盖(前提还要不影响镜像正常启动运行)

额外小声问个小问题,个人出于家庭成员使用目的部署专业版Seafile有什么影响和限制吗?


#2

这个我们会尽量在下个版本发布的时候支持使用用户自定义的nginx配置文件。
专业版有免费3个用户使用的权限,所以即便出于家用目的也没有什么影响。


#3

感谢回复

有3个免费用户那就没什么问题,我这边就2个人在用


#4

我在容器部署文件里把域名设成带映射端口,完成后将服务器设置里也将域名设置为带映射端口的,测试能用,这样没问题吧?


#5

你有测试过上传下载文件和文件共享之类的功能可以正常工作吗?如果可以,那就是容器部署的时候用那个参数生成nginx的配置文件了

但在我自己的环境测试中,在compose yml中给域名加上转发端口会导致seafile容器启动失败(SEAFILE_SERVER_HOSTNAME=example.com:10002

还有一个小问题,每次启动后nginx都要手动将10002端口加到80端口监听的重定向rewrite,还有443端口监听的proxy_set header Host $host:10002改到seafile的配置里,不然无法访问seahub或出现csrf认证错误(403 forbidden)


#6

不要在docker-compose.yml中直接加端口号,那里识别不出来,你启动容器后,可以改seafile的配置文件,seafile的配置文件做了持久化的,改一次就行了,或者直接登录到web端,在系统管理的设置里边改。
另外,昨天发布了专业版7.0.11的镜像,已经支持吧nginx的配置文件持久化了,可以试下。


#7

请问是在哪个页面发布的7.0.11,好像不在hub上更新?

啊,没事了,直接在top域名下的专业版镜像用latest更新了

另外seafile的SERVICE_URL和FILE_SERVER_ROOT提示是数据库里seahub-db/constance_config的优先级比配置文件高,之前我也想着直接改配置文件,但因为nginx配置里不带修改后的端口,连web端的系统设置页面访问都成问题,也没法正常修改这两个参数,后来只能进数据库修改这SERVICE_URL,seahub才可以正常访问