当前位置: 首页 > 知识库问答 >
问题:

无法将芹菜与docker上的rabbitmq服务器连接

慕容兴贤
2023-03-14

我试图创建docker-撰写文件,将运行django apache服务器与芹菜任务,并使用Rabbitmq作为消息经纪。我的问题是芹菜不能连接到Rabbitmq。我得到了这个错误:

[2021-02-18 08:11:44,769:错误/主进程]消费者:无法连接到amqp://客人:**@Rabbitmq: 5672//:[Errno 111]连接拒绝。

这也是我第一次创建docker图像,所以我可能在那里犯了很多错误。

我的docker撰写文件:

version: "3.8"

services:
  server: &server
    build:
      context: .
    environment:
      - PYTHONUNBUFFERED=1
      - CELERY_BROKER=amqp://admin:password@rabbitmq:5672//
    volumes:
      - .:/var/www/html/public
    ports:
      - 80:80
    command:
      ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
    depends_on:
      - rabbitmq
      - celery_beat
    networks:
      - main
  
  rabbitmq:
    container_name : rabbitmq
    image: rabbitmq:3.8
    hostname: rabbitmq
    ports:
      - 5672:5672
    networks:
      - main
    environment:   
    - RABBITMQ_DEFAULT_USER=admin
    - RABBITMQ_DEFAULT_PASS=password


  celery_worker:
    <<: *server
    hostname: rabbitmq
    command: celery -A public worker -l INFO
    ports: []
    networks:
      - main
    depends_on:
      - rabbitmq
    environment:
    #- RABBITMQ_DEFAULT_USER=admin
    #- RABBITMQ_DEFAULT_PASS=password
    - CELERY_BROKER=amqp://admin:password@rabbitmq:5672//

networks:
  main:

Dockerfile:

FROM ubuntu:latest

ENV PYTHONUNBUFFERED=1

RUN apt-get -y update
RUN DEBIAN_FRONTEND=noninteractive apt-get install -y apache2 python3.8 python3-pip libapache2-mod-wsgi-py3

RUN pip3 install --upgrade pip

ADD requirements.txt .

RUN pip install -r requirements.txt

ADD ./scraper_project.conf /etc/apache2/sites-available/scraper_project.conf
ADD . /var/www/html/public

WORKDIR /var/www/html/public

RUN chown -R :www-data .
RUN chmod -R 775 . 

EXPOSE 80

RUN a2ensite scraper_project
RUN a2dissite 000-default

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

芹菜设置:

CELERY_BROKER_URL = os.environ['CELERY_BROKER']

共有1个答案

轩辕嘉平
2023-03-14

固定。问题是我在芹菜工人中设置了主机名。如果有人有类似的问题只是删除主机名:Rabbitmqcelery_worker。

 类似资料:
  • 我遵循了Microsoft的官方文档,并安装了SQL Server Docker image 因此,我有一个SQL服务器映像在IP地址的Docker上运行172.17.0.2 我还可以使用带有虚拟密码的sqlcmd轻松连接到它 问题是我无法通过SSMS连接到它: 当然,在发布这个问题之前,我阅读了其他StackOverflow帖子,我尝试了多次登录: 本地主机,1433 如果localhost不能

  • 我已在Azure虚拟机上安装了Docker for Windows Server。 现在,我尝试使用以下步骤设置RabbitMQ https://hub.docker.com/r/library/rabbitmq/ 但我有一个错误。 3:从库/rabbitmq C:\Program Files\Docker\Docker.exe中提取:清单列表项中没有与windows/amd64匹配的清单。 这是

  • 我正在docker容器中运行sql server` 所有这些都成功完成了。现在,当我尝试使用Java连接到数据库时,我得到了错误。 192.168.56.101是我的虚拟机的ip。我正在虚拟机上运行Linux。 我收到通信链路故障错误。 我在谷歌上搜索并找到了一些关于以下链接的解决方案,但没有一个对我有用。 使用JDBC和MySQL解决“通信链路故障” 如何连接docker中作为容器运行的MySQ

  • 我在Windows10机器上尝试将RabbitMQ(3.6.11版本与Erlang 20一起安装)连接到ZipKin,但我得到了以下错误: 原因:org.springframework.beans.factory.unsatisfieddependencyException:创建名为“server configurator”的bean时出错,该bean在zipkin2.server.interna

  • 我刚刚编写了一个sprint引导应用程序来连接rabbitmq,并尝试发送一些测试消息,但连接被拒绝。Rabbitmq安装在docker中,该docker由命令<code>拉动。docker拉动Rabbitmq:3-management, 我用命令<;code>;docker run-d--hostname rabbit_test--name rabbitmq-p 15672:15672-p 56

  • 我让RabbitMQ在CloudFoundry中运行,并尝试从本地运行的配置服务器进行连接,下面是在应用程序中配置的内容。yml文件 抛出以下启动异常 下面是pom.xml的依赖关系 我可以使用应用程序中提供的信息连接到控制台。yml但不确定为什么会抛出TimeoutException,任何输入都会非常有用,