寻找有关如何在端口转发时在我的docker容器中运行celery pdb的建议,以便我可以从外部世界访问。
我正在关注http://celery.readthedocs.org/en/latest/tutorials/debugging.html
的指南我面临的问题是,即使我告诉容器。
-e CELERY_RDB_HOST ='0.0.0.0'-e CELERY_RDB_PORT ='6900'-p 6900:6900。
到达应用程序中的断点,实际打开的端口不是我要求的端口,因此我的端口转发不再有效....例如。相反,端口6902被打开,无论我问端口是什么,它都会再次变化,而不是我要求的。
我知道它从100个端口的列表中选择它认为“可用”但不确定如何解决这个问题。任何建议都会受到欢迎。
谢谢!
答案 0 :(得分:1)
您可以通过指定一系列端口来运行容器(请参阅http://docs.docker.com/reference/run/#expose-incoming-ports):
docker run -d -e CELERY_RDB_HOST='0.0.0.0' -p 6900-7000:6900-7000 celery
在那之后,当你遇到你的断点时,你只需要远程登录它:
telnet localhost 6902
答案 1 :(得分:0)
我遇到了同样的问题,即celery v4.4.7(11-2020年)。 无论我将环境变量CELERY_RDB_PORT设置为什么,我总是得到+2。 IE浏览器如果我设置9024,那么rdb将侦听9026。
您的docker命令可能如下所示。
CELERY_RDB_HOST='0.0.0.0' -e CELERY_RDB_PORT='6900' -p 6902:6902
可能是芹菜的虫子。