繁体   English   中英

Docker 开发环境拒绝本地主机连接

[英]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.comserver_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文件中遗漏了什么吗?

几个月后,我回来发布(非常直接)我的问题的答案:

  • 删除 Nginx 主机配置中的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.

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