/ / Email não enviado usando o Nodemailer dentro do contêiner do Docker devido a EAI_AGAIN - node.js, docker, docker-compose, nodemailer

E-mail não enviado usando o Nodemailer no contêiner do Docker devido a EAI_AGAIN - node.js, docker, docker-compose, nodemailer

Eu configurei o Nodemailer em um contêiner docker, masEu não consegui receber e-mails para serem enviados. Eu executei o mesmo código fora da janela de encaixe para testar se ele funcionava e envia e-mails. Portanto, deve ser algo relacionado à configuração do contêiner do Docker. docker-file Eu estou usando para desenvolvimento não é extravagante, apenas o essencial, e eu estou usando o docker-toolbox desde que eu não tenho o Windows 10 pro.

Eu encontrei perguntas semelhantes como Nodemailer não envia e-mails após implantá-lo no contêiner docker que tem mais de um ano e não contém código ou respostas de exemplo. Além disso, encontrado https://stackoverflow.com/a/25270794/1148107, e tentei mudar a porta para 465 com o TLS ligado e desligado, mas ainda não envia e-mail.

Erro

A EAI_AGAIN erro é lançado, que eu procurei e é um DNSproblema de tempo limite de pesquisa, portanto, pode ser um erro de conectividade de rede ou um erro relacionado a proxy, mas eu não sou um guru da janela de encaixe (ou devops), por isso estou tendo problemas para descobrir como resolvê-lo. Alguém pode explicar como obter o Nodemailer para trabalhar em um contêiner Docker?

Error: getaddrinfo EAI_AGAIN smtp.mailtrap.io:2525
at Object._errnoException (util.js:1021:11)
at errnoException (dns.js:58:15)
at GetAddrInfoReqWrap.onlookup [as oncomplete] (dns.js:95:26)
code: "ECONNECTION",
errno: "EAI_AGAIN",
syscall: "getaddrinfo",
hostname: "smtp.mailtrap.io",
host: "smtp.mailtrap.io",
port: 2525,
command: "CONN"

Docker Compose

services:
server:
container_name: server
build:
context: .
dockerfile: .docker/node.${APP_ENV}.dockerfile
ports:
- "3000:3000"
volumes:
- ${NODE_SRC_PATH}:${NODE_CONTAINER_PATH}
working_dir: ${NODE_WORKING_DIR}
env_file:
- ./.docker/env/node.${APP_ENV}.env
depends_on:
- db
networks:
- app-network

// ... for brevity removed mysql, adminer, and network services

Arquivo do Docker

# Pull in image
FROM node:latest

# Expose the default Express port
EXPOSE 3000

# Main entry point
ENTRYPOINT ["npm", "run", "start"]

Respostas:

0 para resposta № 1

Por favor, tente reiniciar o Docker

$ systemctl restart docker