Django 芹菜使用Docker容器部署时未连接到AWS Elastic Beanstalk上的RabbitMQ
我有3个docker容器--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"
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弹性豆茎上正常工作
请帮忙