ECONNREFUSED 在 Docker 容器内;访问远程 API
ECONNREFUSED Inside of Docker Container; Accessing Remote API
最近,我一直在为 phpbb 论坛上的 运行 游戏构建一个 nodejs 机器人。我在我的机器上本地安装了 运行ning 机器人(登录、发帖、scraping 线程等),因此,很自然地,我已经开始 docker 化它。
但是,即使在 运行 从我的 docker 容器内部通过登录工作流时,我在尝试点击论坛的 api。上述 api 没有官方文档,所以其中很多都是自我调查。
我正在 运行ning 节点 v14.4.0 与 axios v0.19.2 + toughcookie v4.0.0 用于请求。我能够从容器内部使用相同的有效载荷成功地卷曲端点,所以我怀疑 axios/node.js 有一些问题让我头疼。我试图查看 docker 和 ECONNREFUSED 的其他问题,但 Whosebug 上的大多数问题都与容器间通信有关,而不是与外部 apis/access.
相关的问题
容器 运行 以 root 用户身份运行,我没有设置任何类型的代理或不稳定的网络。
有没有人有任何建议或想法?我的 docker-compose 非常简单,但我将其包含在下面以供参考。
version: '3.2'
services:
bot:
build: .
env_file:
- .env
ports:
- '80:80'
任何提示或理论将不胜感激;我已经到了列表的末尾!
干杯!
我假设您尝试从容器访问主机。实现此目的的一种简单方法是使用主机网络而不是容器网络。尝试
version: '3.2'
services:
network_mode: host
bot:
build: .
env_file:
- .env
更好的方法可能是将应用程序的其余部分也放入容器中,并在 Compose 中使用服务发现,例如
version: '3.2'
services:
bot:
build: .
env_file:
- .env
webapp:
...
然后您可以通过连接到上例中的主机名 "webapp" 来访问 PHP 应用。
最近,我一直在为 phpbb 论坛上的 运行 游戏构建一个 nodejs 机器人。我在我的机器上本地安装了 运行ning 机器人(登录、发帖、scraping 线程等),因此,很自然地,我已经开始 docker 化它。
但是,即使在 运行 从我的 docker 容器内部通过登录工作流时,我在尝试点击论坛的 api。上述 api 没有官方文档,所以其中很多都是自我调查。
我正在 运行ning 节点 v14.4.0 与 axios v0.19.2 + toughcookie v4.0.0 用于请求。我能够从容器内部使用相同的有效载荷成功地卷曲端点,所以我怀疑 axios/node.js 有一些问题让我头疼。我试图查看 docker 和 ECONNREFUSED 的其他问题,但 Whosebug 上的大多数问题都与容器间通信有关,而不是与外部 apis/access.
相关的问题容器 运行 以 root 用户身份运行,我没有设置任何类型的代理或不稳定的网络。
有没有人有任何建议或想法?我的 docker-compose 非常简单,但我将其包含在下面以供参考。
version: '3.2'
services:
bot:
build: .
env_file:
- .env
ports:
- '80:80'
任何提示或理论将不胜感激;我已经到了列表的末尾!
干杯!
我假设您尝试从容器访问主机。实现此目的的一种简单方法是使用主机网络而不是容器网络。尝试
version: '3.2'
services:
network_mode: host
bot:
build: .
env_file:
- .env
更好的方法可能是将应用程序的其余部分也放入容器中,并在 Compose 中使用服务发现,例如
version: '3.2'
services:
bot:
build: .
env_file:
- .env
webapp:
...
然后您可以通过连接到上例中的主机名 "webapp" 来访问 PHP 应用。