Docker Mailhog 与 Docker django 错误:[Errno 111] 连接被拒绝

问题描述 投票:0回答:2

我有 2 个容器通过 docker-compose 运行,一个使用 Django,另一个使用 Mailhog。但是当我通过 Django

python manage.py runserver
send_mail 时,可以发送,如果我在发送电子邮件时运行
docker-compose up
,则会返回此错误:

[Errno 111] 连接被拒绝

我的 docker-compose 是:

services:
    mailhog:
        image: mailhog/mailhog
        logging:
            driver: 'none' # disable saving logs
        ports:
            - 1025:1025 # smtp server
            - 8025:8025 # web ui
        networks:
            - my_net
    api:
        build: .
        container_name: my_api
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/src
        ports:
            - '8000:8000'
        env_file:
            - '.env'
        depends_on:
            - mailhog
        networks:
            - my_net

networks:
    my_net:

我的环境文件是:

EMAIL_HOST = '0.0.0.0'
EMAIL_PORT = '1025'
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

我该怎么办?

django docker-compose mailhog
2个回答
0
投票

找到了,我必须改变两件事:

1-更改了我的 docker-compose,将 container_name 添加到 mailhog 容器并将 api 链接到 mailhog

services:
    mailhog:
        image: mailhog/mailhog
        container_name: mailhog
        logging:
            driver: 'none' # disable saving logs
        ports:
            - 1025:1025 # smtp server
            - 8025:8025 # web ui
        networks:
            - my_net
    api:
        build: .
        container_name: my_api
        command: python manage.py runserver 0.0.0.0:8000
        volumes:
            - .:/src
        ports:
            - '8000:8000'
        env_file:
            - '.env'
        depends_on:
            - mailhog
        networks:
            - my_net
        links:
            - 'mailhog'

networks:
    my_net:

2-并将我的 EMAIL_HOST 更改为 docker container_name

EMAIL_HOST = 'mailhog'
EMAIL_PORT = '1025'
EMAIL_HOST_USER = ''
EMAIL_HOST_PASSWORD = ''

0
投票

@Germano 的解决方案对我有用,谢谢伙计!我很感激

© www.soinside.com 2019 - 2024. All rights reserved.