celery pdb在更改的侦听端口内运行的docker容器内

时间:2014-08-30 15:33:01

标签: python celery docker pdb

寻找有关如何在端口转发时在我的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个端口的列表中选择它认为“可用”但不确定如何解决这个问题。任何建议都会受到欢迎。

谢谢!

2 个答案:

答案 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

可能是芹菜的虫子。