iptv-api icon indicating copy to clipboard operation
iptv-api copied to clipboard

8000端口已经被占用的情况下,如果使用docker部署,因为需要IPV6所以用HOST模式,导致网络连接会失败

Open Chenglukas opened this issue 1 year ago • 9 comments

飞牛云OS的docker容器只能使用host模式访问ipv6,但是飞牛云默认占用了8000和8001端口,所以项目就运行不起来了,这个端口能不能改成一些不常用的端口

Chenglukas avatar Dec 03 '24 03:12 Chenglukas

容器运行命令的端口可以自定义的,自定义端口:8000,可以尝试更换更多可用的端口。

Guovin avatar Dec 03 '24 03:12 Guovin

容器运行命令的端口可以自定义的,自定义端口:8000,可以尝试更换更多可用的端口。

感谢快速回复,但是我指的是flask的运行端口,路径为service/app.py,代码为app.run(host="0.0.0.0", port=8000),这个地方是写死的8000端口运行的服务,我的意思是在docker中使用环境变量来自由设置这个运行端口,例如在dockerfile中使用环境变量ENV PORT=8000,然后在app.py中app.run(host="0.0.0.0", port=int(os.getenv('PORT')) if len(os.getenv('PORT').strip()) > 0 else 8000)这样子来动态这个flask的端口,对于nas下的环境非常需要

Chenglukas avatar Dec 03 '24 05:12 Chenglukas

容器运行命令的端口可以自定义的,自定义端口:8000,可以尝试更换更多可用的端口。

感谢快速回复,但是我指的是flask的运行端口,路径为service/app.py,代码为app.run(host="0.0.0.0", port=8000),这个地方是写死的8000端口运行的服务,我的意思是在docker中使用环境变量来自由设置这个运行端口,例如在dockerfile中使用环境变量ENV PORT=8000,然后在app.py中app.run(host="0.0.0.0", port=int(os.getenv('PORT')) if len(os.getenv('PORT').strip()) > 0 else 8000)这样子来动态这个flask的端口,对于nas下的环境非常需要

我知道你想要的,但修改这个端口似乎没有必要,这个只是容器内部端口,你真正用到的其实还是外部转发的端口

Guovin avatar Dec 03 '24 08:12 Guovin

我也看到了许多用飞牛部署的案例,都是通过更改前面转发端口就可以成功部署,并非得修改内部的8000端口

Guovin avatar Dec 03 '24 08:12 Guovin

感谢快速回复,是这样子的,如果使用飞牛的docker网络的桥接模式是无法使用ipv6的,也就无法验证ipv6的直播源地址,只有host直连模式才可以验证ipv6源,但是host模式下端口和主机的其他端口是共享的,也就是说项目的8000端口和飞牛的默认访问端口8000冲突了,就会导致项目不能运行。使用桥接模式确实是可以成功部署并运行的,只是只能验证ipv4源

Chenglukas avatar Dec 03 '24 08:12 Chenglukas

后续版本我加个端口配置吧

Guovin avatar Dec 03 '24 08:12 Guovin

屏幕截图 2024-12-15 213230 image image 大佬,docker镜像是不是还没更新,我添加了环境变量,但似乎flask还是用的默认值,无法启动

ad1095445 avatar Dec 15 '24 13:12 ad1095445

后续版本我加个端口配置吧

大佬,麻烦抽空更新下docker镜像,先临时写死8080解决了 image

ad1095445 avatar Dec 15 '24 13:12 ad1095445

@ad1095445 docker镜像暂未更新

Guovin avatar Dec 16 '24 02:12 Guovin

v1.5.6已部分,镜像已更新,已支持端口环境变量修改 (-e APP_PORT = 8000)

Guovin avatar Dec 17 '24 02:12 Guovin