【发布时间】:2018-08-31 16:49:45
【问题描述】:
我有一个打包在 Docker 容器中的 NodeJS 应用程序,我从该容器向smtp.gmail.com 发送电子邮件(使用nodemailer npm 库)。同一个容器(我的意思是从同一个注册表中提取的同一个图像)在我的 Macbook 上工作,但在我的 Ubuntu VPS 上抛出超时错误。我尝试使用 docker exec... 从 Ubuntu 容器 ping smtp.gmail.com,并且 ping 工作正常。我想知道是什么问题。以下是详细信息-
我的 Macbook:
- 操作系统:MacOS High Sierra(版本 10.13.6)
- Docker:版本 18.06.1-ce,构建 e68fc7a
Ubuntu VPS:
- 操作系统:Ubuntu 16.04.5 LTS
- Docker:版本 18.06.1-ce,构建 e68fc7a
错误:
在 Ubuntu 机器上,我使用命令 docker run -p 7656:7656 fb 启动容器。我得到的错误是 -
{ Error: Connection timeout
at SMTPConnection._formatError (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:606:19)
at SMTPConnection._onError (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:579:20)
at Timeout._connectionTimeout.setTimeout (/docker-training/node_modules/nodemailer/lib/smtp-connection/index.js:261:18)
at ontimeout (timers.js:478:11)
at tryOnTimeout (timers.js:302:5)
at Timer.listOnTimeout (timers.js:262:5) code: 'ETIMEDOUT', command: 'CONN' }
我的 Docker 文件 -
FROM node:9.2.0
RUN mkdir /docker-training
WORKDIR /docker-training
COPY . ${WORKDIR}
RUN ["npm", "install"]
EXPOSE 7656
ENTRYPOINT ["npm", "start"]
感谢任何帮助。
【问题讨论】:
-
你能展示你的 Dockerfile 吗?
-
在主帖中添加了 Docker 文件。谢谢。
-
@Héctor 谢谢。我看过了。但不幸的是,我不相信它的 nodemailer 在这里搞砸了。我相信它在 Linux 上的 Docker 搞砸了。
-
您的 VPS 是否允许传出流量?
标签: node.js docker nodemailer