[英]Localhost connection refused in Docker development environment
我将 Docker 用于我的 PHP 开发环境,并以这种方式使用 Docker Compose 设置我的图像:
myapp:
build: myapp/
volumes:
- ./myapp:/var/www/myapp
php:
build: php-fpm/
expose:
- 9000:9000
links:
- elasticsearch
volumes_from:
- myapp
extra_hosts:
# Maybe the problem is related to this line
- "myapp.localhost.com:127.0.0.1"
nginx:
build: nginx/
ports:
- 80:80
links:
- php
volumes_from:
- myapp
elasticsearch:
image: elasticsearch:1.7
ports:
- 9200:9200
Nginx 配置(在其 Docker 文件中)使用名为myapp.localhost.com
( server_name
参数)的虚拟主机,并指向/var/www/myapp
文件夹。
所有这些工作正常。
但这是我的问题:我的 Web 应用程序通过带有 cURL(在 PHP 代码中)的myapp.localhost.com
URL 调用自身,通过运行以下命令可以更轻松地重现:
docker-compose run php curl http://myapp.localhost.com
cURL 响应如下:
cURL 错误 7:无法连接到 myapp.localhost.com 端口 80:连接被拒绝
您对我如何调用应用程序 URL 有任何想法吗? 我在docker-compose.yml
文件中遗漏了什么吗?
几个月后,我回来发布(非常直接)我的问题的答案:
server_name
条目extra_hosts
docker-compose.yml
文件中的extra_hosts
条目(不是必需的,但没用) 只需使用 Nginx 容器名称作为主机调用服务器(此处为nginx
):
docker-compose exec php curl http://nginx
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.