0

我的后端包括:

  1. 一个 NodeJS/Express 应用程序,
  2. Redis 服务。

该应用程序依赖于 redis,因此后者总是在 NodeJS 应用程序之前启动。两个容器都被添加到同一个桥接网络。

关键是,在启动两个容器后,NodeJS 应用程序无法从远程数据库中获取数据。exec进入正在运行的容器显示该ping命令报告 100% 数据包丢失,任何尝试apk add挂起 - 换句话说,无法访问网络。resolv.conf显示本地 DNS 地址(127.0-something),与主机服务器中的相同。但是,服务器使用resolvectl并且访问任何外部源都没有问题。

当部署的副本在不同的服务器(Ubuntu 18.04)上运行时,上面的所有检查都会产生相同的输出(100% 丢包、相同resolv.conf的内容等),但应用程序可以访问远程数据库!两个区别:工作后端由 Gitlab 管道部署在 Ubuntu 18.04 服务器上,而不工作后端是手动部署在 Ubuntu 21.04 服务器上。

它可能是具有用户权限的东西吗?两台服务器上相同的端口是开放的,相同Dockerfiles的用于构建。我已经没有什么可能导致问题的想法了。

4

0 回答 0