无法在Docker容器中调用nameko shell

2024-06-01 11:07:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调用示例服务的docker容器中的nameko shell,但收到了这个错误。我已经安装了两个容器。我的rabbitmq容器和我的服务容器。我正在从服务容器bash内部调用nameko shell。容器正确启动,服务容器成功连接。但是我不能用贝壳

错误

Traceback (most recent call last):
  File "/usr/local/lib/python3.6/site-packages/amqp/transport.py", line 138, in _connect
    host, port, family, socket.SOCK_STREAM, SOL_TCP)
  File "/usr/local/lib/python3.6/socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -9] Address family for hostname not supported

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/nameko", line 11, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.6/site-packages/nameko/cli/main.py", line 112, in main
    args.main(args)
  File "/usr/local/lib/python3.6/site-packages/nameko/cli/commands.py", line 143, in main
    main(args)
  File "/usr/local/lib/python3.6/site-packages/nameko/cli/shell.py", line 98, in main
    ctx['n'] = make_nameko_helper(config)
  File "/usr/local/lib/python3.6/site-packages/nameko/cli/shell.py", line 73, in make_nameko_helper
    module.rpc = proxy.start()
  File "/usr/local/lib/python3.6/site-packages/nameko/standalone/rpc.py", line 228, in start
    self._reply_listener.setup()
  File "/usr/local/lib/python3.6/site-packages/nameko/rpc.py", line 260, in setup
    self.queue_consumer.register_provider(self)
  File "/usr/local/lib/python3.6/site-packages/nameko/standalone/rpc.py", line 123, in register_provider
    self._setup_consumer()
  File "/usr/local/lib/python3.6/site-packages/nameko/standalone/rpc.py", line 102, in _setup_consumer
    channel = self.connection.channel()
  File "/usr/local/lib/python3.6/site-packages/kombu/connection.py", line 289, in channel
    chan = self.transport.create_channel(self.connection)
  File "/usr/local/lib/python3.6/site-packages/kombu/connection.py", line 867, in connection
    max_retries=1, reraise_as_library_errors=False
  File "/usr/local/lib/python3.6/site-packages/kombu/connection.py", line 445, in _ensure_connection
    callback, timeout=timeout
  File "/usr/local/lib/python3.6/site-packages/kombu/utils/functional.py", line 344, in retry_over_time
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.6/site-packages/kombu/connection.py", line 874, in _connection_factory
    self._connection = self._establish_connection()
  File "/usr/local/lib/python3.6/site-packages/kombu/connection.py", line 809, in _establish_connection
    conn = self.transport.establish_connection()
  File "/usr/local/lib/python3.6/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
    conn.connect()
  File "/usr/local/lib/python3.6/site-packages/amqp/connection.py", line 314, in connect
    self.transport.connect()
  File "/usr/local/lib/python3.6/site-packages/amqp/transport.py", line 78, in connect
    self._connect(self.host, self.port, self.connect_timeout)
  File "/usr/local/lib/python3.6/site-packages/amqp/transport.py", line 149, in _connect
    "failed to resolve broker hostname"))
  File "/usr/local/lib/python3.6/site-packages/amqp/transport.py", line 162, in _connect
    self.sock.connect(sa)
ConnectionRefusedError: [Errno 111] Connection refused

Dockerfile

FROM python:3-onbuild
CMD ["nameko", "run", "--config", "conf.yml", "helloworld"]

配置文件

AMQP_URI: 'pyamqp://guest:guest@rabbitmq'

docker编写文件

version: '2'
services:
  echo:
    build: ./echo
    restart: always
    volumes:
     - .:/echo/code
    depends_on:
     - rabbitmq
  rabbitmq:
    image: "rabbitmq"
    ports:
      - "15673:15672"

Tags: inpyselflibpackagesusrlocalconnect
1条回答
网友
1楼 · 发布于 2024-06-01 11:07:31

过了一会儿,我发现这是我自己的愚蠢错误。我忘了在我的nameko shell命令中添加配置文件。在执行nameko shell时,必须指定消息代理。在我的例子中,我需要运行nameko shell config config.yml。这使我能够连接并测试我的nameko服务

相关问题 更多 >