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;
}
... and when I run the command from within my Docker container, I get this error message:
Warning: file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name does not resolve
... but when I run a short test.php script...
<?php
echo file_get_contents('https://www.muckrock.com/api_v1/jurisdiction/?format=json&page=1');
?>
... from either inside or outside the container, I get correct output from the API I'm testing against.
What's going on here?
Did you run a short test.php inside the container too?
It is not a Symfony or PHP problem. In short container's network cannot resolve the IP address of the domain muckrock.com. Look for DNS settings for your container network. Tell more about your infrastructure. It is Kubernetes or something another?
For raw docker container running you can use something likethis :
docker run -it --dns=8.8.8.8 php:7-fpm-alpine /bin/sh
Or for docker-compose something like this (or for version 3 as more actual)
version: 2
services:
application:
dns:
- 8.8.8.8
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.