Cannot assign requested address: when sending e-mail from Django Docker container

I have this error message, when sending an e-mail from Django Docker container.

OSError at /accounts/signup/

[Errno 99] Cannot assign requested address

Request Method:     POST
Request URL:    http://127.0.0.1:8000/accounts/signup/
Django Version:     4.0.10
Exception Type:     OSError
Exception Value:    

[Errno 99] Cannot assign requested address

Exception Location:     /usr/local/lib/python3.10/socket.py, line 833, in create_connection
Python Executable:  /usr/local/bin/python
Python Version:     3.10.4
Python Path:    

['/code',
 '/usr/local/lib/python310.zip',
 '/usr/local/lib/python3.10',
 '/usr/local/lib/python3.10/lib-dynload',
 '/usr/local/lib/python3.10/site-packages']

Here is my configuration in settings.py

EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
DEFAULT_FROM_EMAIL = "my@gmail.com"
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 465
EMAIL_USE_SSL = True
EMAIL_USE_TLS = False
EMAIL_HOST_USER = "my@gmail.com"
EMAIL_HOST_PASSWORD = "mypassword"

Here is docker-compose.yml.

version: "3.9"

services:
  web:
    build: .
    command: python /code/manage.py runserver 0.0.0.0:8000
    volumes:
      - .:/code
    ports:
      - 8000:8000
    depends_on:
      - db
    environment:
      - "DJANGO_SECRET_KEY=my_key"
      - "DJANGO_DEBUG=True"
  db:
    image: postgres:13
    volumes:
      - postgres_data:/var/lib/postgresql/data/
    environment:
      - "POSTGRES_HOST_AUTH_METHOD=trust"

volumes:
  postgres_data:

I'm able to send e-mail with the same config via Python code without docker container.

Вернуться на верх