如何使用环境变量(docker-compose)连接到RabbitMQ?

时间:2020-10-27 19:19:35

标签: docker go docker-compose rabbitmq

朋友,我正在这里练习并开发一个由Web服务和工作人员组成的系统,他们通过RabbitMQ相互通信。我也使用Docker-Compose。一切正常,直到我尝试使用环境变量。 Web服务现在无法连接到Rabbitmq:“拨号tcp 127.0.0.1:5672:connect:连接被拒绝:...”

也许你们可以帮助我找出我所缺少的东西。这是我代码的重要部分。

Golang代码:

func init() {
    var err error
    url := os.Getenv("AMQP_URL")
    conn, err = amqp.Dial(url)
    if err != nil {
        logErr(err, "Failed to connect to RabbitMQ")
    }
...

我的撰写文件:

version:  '3.3'
services: 
    blur-rabbitmq: 
        image: rabbitmq:3-alpine
        container_name: blur-rabbitmq
        restart: always
        hostname: rabbitmq
        ports: 
            - 5672:5672
            - 15672:15672
        environment:
            RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER}
            RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD} 
            RABBITMQ_DEFAULT_VHOST: "/"
    
    blur-service: 
        depends_on:
            - blur-rabbitmq
        build: .
        container_name: blur-service
        restart: always
        volumes:
            - type: bind
              source: /Users/name/Desktop/source-images
              target: /source-images
        ports: 
            - 8080:8080
        environment:
            AMQP_URL: ${AMQP_URL}

和我的.env文件:

AMQP_URL=amqp://guest:guest@localhost:5672
RABBITMQ_USER=guest
RABBITMQ_PASSWORD=guest

有什么想法可以调试吗?

1 个答案:

答案 0 :(得分:0)

我明白了。错误出在.env文件中:

我应该使用AMQP_URL=amqp://guest:guest@blur-service:5672而不是AMQP_URL=amqp://guest:guest@localhost:5672

相关问题