docker-compose up <服务>无法正确启动<服务>

时间:2019-01-08 17:14:56

标签: docker docker-compose rabbitmq celery

上下文:我在celery + rabbitmq堆栈上有一个主干系统。
 系统已被docker化(此处未提供worker服务)

version: '2'
services:
    rabbit:
        hostname: rabbit
        image: rabbitmq:latest
        environment:
            - RABBITMQ_DEFAULT_USER=admin
            - RABBITMQ_DEFAULT_PASS=mypass
        ports:
            - "5672:5672"

    master:
        build:
            context: .
            dockerfile: dockerfile
        volumes:
            - .:/app
        links:
            - rabbit
        depends_on:
            - rabbit

当我执行docker-compose up时-一切正常! enter image description here

问题:但是我不能使用docker-compose up,我需要使用docker-compose masterdocker-compose worker(用于工作机和主控机的两个独立命令)。因此,当我执行docker-compose master时-容器启动,但是挂断了!: enter image description here

研究:我发现它挂在任务提交上了:
result = longtime_add.delay(count)其中longtime_add是一项任务。

完整代码:https://github.com/waryak/MastersDiploma/tree/vlad

另外,请编辑标题-我觉得它需要更清晰的标题

2 个答案:

答案 0 :(得分:2)

以下几点要点:(1)我没有看到github中的生产者代理URL的预期输出消息; (2)我找不到将/src/network添加到您的pythonpath的位置; (3)在celery.py文件中加载生产者经纪人url的代码看起来错误,因为它正在寻找CONFIG变量,而不是PRODUCE_BROKER_URL文件中的变量。 。生产者超时的原因是如果它无法连接到代理,那么通过打印出生产者和工作者代理URL,您将走上正确的轨道。您可能更容易先尝试在生产者中对variables.env进行硬编码:

broker_url

答案 1 :(得分:0)

我刚刚尝试了docker-compose up rabbit master,但结果成功了。这很奇怪,因为我看不到经纪人日志或任何其他日志的外部差异。另外,码头工人文件保证,所有依赖的服务都会启动...