2016-04-10 5 views
1

私のコンテナ内でrabbitmqを使用しようとしています。必要なライブラリをインストールしてからBlockingConnectionを作成しようとしましたが、失敗します。 VMまたは物理ホストで同じことを試しても同じことが起こります。コンテナでのみ失敗します。pika.BlockingConnection()はコンテナ内でエラーが発生し、VM内で正常に動作します

必要なパッケージをインストール: - - :ここでの手順です

$ docker run -it ubuntu:15.10 /bin/bash 
[email protected]# 
[email protected]# sudo apt-get -y install python-pip rabbitmq-server wget \ 
        && pip install pika 

次に、私はBlockingConnectionを作成しようとしましたが、それは失敗します。しかし、同じことがVMで働いた。

[email protected]# 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イメージ。これに関するフィードバックは本当に役に立ちます。

+0

公式のrabbitmq画像で試しましたか? https://hub.docker.com/_/rabbitmq/ – cantSleepNow

+0

ありがとうございます。うん、私はしました。彼らはドッカーファイルでたくさんのことをやっているようだし、私はそれをすべて望んでいない。私は特定の目的のために私自身の最小限のイメージを持っていたい。 – Rahul

答えて

1

rabbitmq-serverプロセスが実行されていないようです。コンテナなので、entrypointで指定されているプロセス以外のプロセスはデフォルトでは実行されません。一旦私がrabbitmq-serverを起動すると、うまく動作し始めました。

[email protected]# /etc/init.d/rabbitmq-server start 

私が今やらなければならないことは、私のエントリポイントで、私は最初のRabbitMQサーバ・プロセスを開始し、その後、依存するサービスを始めていますことを確認することです。これは、コンテナ内に配置されたものに適用されます。