PHP无法解析主机名

时间:2019-06-15 09:48:40

标签: docker dockerfile

我正在使用Slim框架(PHP)为第一个项目学习docker。我创建了一个dockerfile来构建包含所有源代码的映像。当我使用run命令运行图像时,它会显示

<b>Warning</b>:  Unknown: php_network_getaddresses: getaddrinfo failed: Name does not resolve in <b>Unknown</b> on line <b>0</b><br />
[Sat Jun 15 09:41:14 2019] Failed to listen on  127.0.0.1:8080 (reason: php_network_getaddresses: getaddrinfo failed: Name does not resolve)

Dockerfile如下:

FROM php:7-alpine
COPY . /var/www
WORKDIR /var/www
CMD [ "php", "-S 127.0.0.1:8080 -t public" ]

Docker运行命令是:

sudo docker run -it --rm --network="host" --expose 8080 --name cm2 collection_manager_1

不知道该如何解决。有人可以帮我吗?

1 个答案:

答案 0 :(得分:3)

CMD syntax似乎有问题。该命令中的所有参数都应用逗号分隔,并放在双引号中。

我在Dockerfile中做了些微改动,并且奏效了。

FROM php:7-alpine
COPY . /var/www
WORKDIR /var/www
CMD [ "php", "-S", "0.0.0.0:8080", "-t", "html" ]

docker build -t testimage:v1 .

[mchawre@jumphost try]$ docker run -it --rm --network="host" --expose 8080 --name testrun testimage:v1
PHP 7.3.6 Development Server started at Sat Jun 15 11:50:19 2019
Listening on http://0.0.0.0:8080
Document root is /var/www/html
Press Ctrl-C to quit.

注意::将127.0.0.1更改为0.0.0.0,以便您可以使用计算机的public / private ip(不仅仅是本地主机)访问php。