繁体   English   中英

警告:file_get_contents():php_network_getaddresses:getaddrinfo 失败:名称无法解析

[英]Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name does not resolve

I am running a php:7-fpm-alpine Docker container and have a Symfony command that calls the following function (simplified a bit for display here):

protected function getNextEndpointAsObj()
{
    $asObj = json_decode(file_get_contents('https://www.muckrock.com/api_v1/jurisdiction/?format=json&page=1'));

    return $asObj;
}

...当我从 Docker 容器中运行命令时,我收到以下错误消息:

警告:file_get_contents():php_network_getaddresses:getaddrinfo 失败:名称无法解析

...但是当我运行一个简短的 test.php 脚本时...

<?php

echo file_get_contents('https://www.muckrock.com/api_v1/jurisdiction/?format=json&page=1');

?>

...从容器内部或外部,我从正在测试的 API 得到正确的 output。

这里发生了什么?

您是否也在容器内运行了一个简短的 test.php ?

这不是 Symfony 或 PHP 问题。 简而言之,容器的网络无法解析域 muckrock.com 的 IP 地址。 查找容器网络的 DNS 设置。 详细介绍您的基础架构。 是 Kubernetes 还是别的什么?

对于运行的原始 docker 容器,您可以使用以下内容:

docker run -it --dns=8.8.8.8 php:7-fpm-alpine /bin/sh

或者对于 docker-compose 类似这样的东西(或者对于版本 3来说更实际)

version: 2
services:
 application:
  dns:
   - 8.8.8.8

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM