簡體   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