Django 芹菜使用Docker容器部署时未连接到AWS Elastic Beanstalk上的RabbitMQ

Django 芹菜使用Docker容器部署时未连接到AWS Elastic Beanstalk上的RabbitMQ,django,docker,rabbitmq,celery,amazon-elastic-beanstalk,Django,Docker,Rabbitmq,Celery,Amazon Elastic Beanstalk,我有3个docker容器--my_django_应用程序,rabbitmq,和celery_worker。我已使用docker compose.yml在本地系统上实现了它,如下所示: version: '3' services: web: &my_django_app build: . command: python3 manage.py runserver 0.0.0.0:8000 ports: - "80:8000"

我有3个docker容器--
my_django_应用程序
rabbitmq
,和
celery_worker
。我已使用docker compose.yml在本地系统上实现了它,如下所示:

version: '3'

services:
  web: &my_django_app
    build: .
    command: python3 manage.py runserver 0.0.0.0:8000
    ports:
      - "80:8000"
    depends_on:
      - rabbitmq
  rabbitmq:
    image: rabbitmq:latest
  celery_worker:
    <<: *my_django_app
    command: celery -A MyDjangoApp worker --autoscale=10,1 --loglevel=info
    ports: []
    depends_on:
      - rabbitmq
{
  "AWSEBDockerrunVersion": 2,
  "Authentication": {
    "Bucket": "cred-keeper",
    "Key": "index.docker.io/.dockercfg"
  },
  "containerDefinitions": [{
      "Authentication": {
        "Bucket": "cred-keeper",
        "Key": "index.docker.io/.dockercfg"
      },
      "command": [
        "celery",
        "-A",
        "MyDjangoApp",
        "worker",
        "--autoscale=10,1",
        "--loglevel=info"
      ],
      "essential": true,
      "image": "myName/my_django_app:latest",
      "name": "celery_worker",
      "memory": 150
    },
    {
      "essential": true,
      "image": "rabbitmq:latest",
      "name": "rabbitmq",
      "memory": 256,
    },
    {
      "Authentication": {
        "Bucket": "cred-keeper",
        "Key": "index.docker.io/.dockercfg"
      },
      "command": [
        "python3",
        "manage.py",
        "runserver",
        "0.0.0.0:8000"
      ],
      "essential": true,
      "image": "myName/my_django_app:latest",
      "memory": 256,
      "name": "web",
      "portMappings": [{
        "containerPort": 8000,
        "hostPort": 80
      }]
    }
  ],
  "family": "",
  "volumes": []
}
我从AWS Elastic Beanstalk下载了3个容器的日志,容器
web
以及
rabbitmq
工作正常,但是
celery\u worker
显示了如下日志:

[2020-06-30 20:17:22,885: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbitmq:5672//: failed to resolve broker hostname.
Trying again in 2.00 seconds... (1/100)

[2020-06-30 20:17:24,898: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbitmq:5672//: failed to resolve broker hostname.
Trying again in 4.00 seconds... (2/100)

[2020-06-30 20:17:28,914: ERROR/MainProcess] consumer: Cannot connect to amqp://guest:**@rabbitmq:5672//: failed to resolve broker hostname.
Trying again in 6.00 seconds... (3/100)
.
.
.
[2020-06-30 20:16:45,662: CRITICAL/MainProcess] Unrecoverable error: OperationalError('failed to resolve broker hostname')
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/amqp/transport.py", line 137, in _connect
    host, port, family, socket.SOCK_STREAM, SOL_TCP)
  File "/usr/local/lib/python3.7/socket.py", line 752, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -2] Name or service not known

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/kombu/connection.py", line 439, in _reraise_as_library_errors
    yield
  File "/usr/local/lib/python3.7/site-packages/kombu/connection.py", line 430, in ensure_connection
    callback, timeout=timeout)
  File "/usr/local/lib/python3.7/site-packages/kombu/utils/functional.py", line 344, in retry_over_time
    return fun(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/kombu/connection.py", line 283, in connect
    return self.connection
  File "/usr/local/lib/python3.7/site-packages/kombu/connection.py", line 839, in connection
    self._connection = self._establish_connection()
  File "/usr/local/lib/python3.7/site-packages/kombu/connection.py", line 794, in _establish_connection
    conn = self.transport.establish_connection()
  File "/usr/local/lib/python3.7/site-packages/kombu/transport/pyamqp.py", line 130, in establish_connection
    conn.connect()
  File "/usr/local/lib/python3.7/site-packages/amqp/connection.py", line 311, in connect
    self.transport.connect()
  File "/usr/local/lib/python3.7/site-packages/amqp/transport.py", line 77, in connect
    self._connect(self.host, self.port, self.connect_timeout)
  File "/usr/local/lib/python3.7/site-packages/amqp/transport.py", line 148, in _connect
    "failed to resolve broker hostname"))
OSError: failed to resolve broker hostname
在我的Django设置中,我的
芹菜\u经纪人\u URL
”amqp://rabbitmq“
。另外,我的
芹菜.py
如下所示:

from __future__ import absolute_import, unicode_literals

import os

from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'Speeve.settings')

app = Celery('MyDjangoApp')

app.config_from_object('django.conf:settings', namespace='CELERY')

app.autodiscover_tasks()


@app.task(bind=True)
def debug_task(self):
    print('Request: {0!r}'.format(self.request))
我需要做什么才能让我的芹菜容器在AWS弹性豆茎上正常工作

请帮忙