我有 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 = ''
我该怎么办?
找到了,我必须改变两件事:
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 = ''
@Germano 的解决方案对我有用,谢谢伙计!我很感激