pika.BlockingConnection() 在容器内失败,在 VM 内运行良好
pika.BlockingConnection() failing inside containers, works well within VMs
我正在尝试在我的容器中使用 rabbitmq。我安装了所需的库,然后尝试创建 BlockingConnection,但失败了。当我在任何 VM 或物理主机上尝试时,同样的事情会起作用。它仅对容器失败。以下是步骤:-
正在安装所需的软件包:-
$ docker run -it ubuntu:15.10 /bin/bash
root@d3d44e2656a9#
root@d3d44e2656a9# sudo apt-get -y install python-pip rabbitmq-server wget \
&& pip install pika
接下来,我尝试创建 BlockingConnection,但失败了。不过,同样的事情也适用于虚拟机。
root@d3d44e2656a9# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pika
>>> pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in __init__
self._process_io_for_connection_setup()
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup
self._open_error_result.is_ready)
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output
raise exceptions.ConnectionClosed()
pika.exceptions.ConnectionClosed
>>>
我不确定容器内有什么问题。我为此使用 ubuntu:15.10 图片。对此的任何反馈都会非常有帮助。
rabbitmq-server 进程似乎不是 运行。由于它是一个容器,因此默认情况下没有其他进程比入口点中指定的进程 运行。一旦我启动了 rabbitmq-server,它就开始正常工作了。
root@d3d44e2656a9# /etc/init.d/rabbitmq-server start
我现在需要做的就是确保在我的入口点,我首先启动 rabbitmq-server 进程,然后启动依赖服务。这应该适用于部署在容器内的任何东西。
我正在尝试在我的容器中使用 rabbitmq。我安装了所需的库,然后尝试创建 BlockingConnection,但失败了。当我在任何 VM 或物理主机上尝试时,同样的事情会起作用。它仅对容器失败。以下是步骤:-
正在安装所需的软件包:-
$ docker run -it ubuntu:15.10 /bin/bash
root@d3d44e2656a9#
root@d3d44e2656a9# sudo apt-get -y install python-pip rabbitmq-server wget \
&& pip install pika
接下来,我尝试创建 BlockingConnection,但失败了。不过,同样的事情也适用于虚拟机。
root@d3d44e2656a9# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pika
>>> pika.BlockingConnection(pika.ConnectionParameters('127.0.0.1'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 339, in __init__
self._process_io_for_connection_setup()
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 374, in _process_io_for_connection_setup
self._open_error_result.is_ready)
File "/usr/local/lib/python2.7/dist-packages/pika/adapters/blocking_connection.py", line 395, in _flush_output
raise exceptions.ConnectionClosed()
pika.exceptions.ConnectionClosed
>>>
我不确定容器内有什么问题。我为此使用 ubuntu:15.10 图片。对此的任何反馈都会非常有帮助。
rabbitmq-server 进程似乎不是 运行。由于它是一个容器,因此默认情况下没有其他进程比入口点中指定的进程 运行。一旦我启动了 rabbitmq-server,它就开始正常工作了。
root@d3d44e2656a9# /etc/init.d/rabbitmq-server start
我现在需要做的就是确保在我的入口点,我首先启动 rabbitmq-server 进程,然后启动依赖服务。这应该适用于部署在容器内的任何东西。