6

我的公司有在我系统上的 Docker 中运行的软件,但没有使用 Lando。该软件通过 URL 提供一些数据: http ://local.relay.cool:8081/clicks-bff/api/ads/

我可以在匿名浏览器中点击这个 URL,从终端 cURL,然后通过 Postman 加载它,它会返回预期的数据。

我正在使用 Wordpress 配方运行 Lando,并且正在开发一个插件。这个插件可以点击外部 URL 并检索数据,我尝试了几个不同的来确认。

然而,当 Lando 尝试访问上面列出的 URL 时,我得到一个 WP_Error:

object(WP_Error)#1269 (2) { ["errors"]=> array(1) { ["http_request_failed"]=> array(1) { [0]=> string(58) "cURL error 28: Resolving timed out after 5514 milliseconds" } } ["error_data"]=> array(0) { } }

这是 .lando.yaml 配置块:

name: my app name
recipe: wordpress
config:
  webroot: wordpress

我是否缺少一些配置选项来允许 Lando 访问我机器上的另一个 URL?

4

1 回答 1

1

从您的问题来看,听起来您尝试访问的 URL 正在您机器上的非 Lando docker 容器上运行。

这意味着从您的 Lando 实例到服务的路由将与往常略有不同。您应该能够以与访问localhost端点相同的方式完成此操作。正如GitHub 上的Lando 问题$LANDO_HOST_IP中所解释的,您必须使用环境变量来路由到本地服务。

由于您的容器都在轻型 hyper-v 实例中运行,因此您需要知道主机的主机名或 IP。通常我们将 $LANDO_HOST_IP 设置为您的计算机。. .

所以尝试这样的事情(假设你使用的是 PHP curl):

curl_init('http://' . $_ENV["LANDO_HOST_IP"] . ':8081/clicks-bff/api/ads/');
于 2020-12-17T01:49:41.943 回答