/ Conexão Localhost recusada no ambiente de desenvolvimento do Docker - php, curl, nginx, docker, docker-compose

Conexão de host local recusada no ambiente de desenvolvimento do Docker - php, curl, nginx, docker, docker-compose

Eu uso o Docker para meu ambiente de desenvolvimento PHP e configuro minhas imagens com o Docker Compose dessa maneira:

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

O Nginx é configurado (em seu arquivo Docker) com um host virtual chamado myapp.localhost.com (server_name parâmetro) e que aponta para o /var/www/myapp pasta.

Tudo isso funciona bem.

Mas aqui está o meu problema: o meu aplicativo da web está chamando a si mesmo pelo myapp.localhost.com URL com cURL (no código PHP), que pode ser reproduzido mais facilmente executando este comando:

docker-compose run php curl http://myapp.localhost.com

A resposta do cURL é a seguinte:

erro cURL 7: Falha ao conectar-se à porta myapp.localhost.com 80: Conexão recusada

Você tem alguma ideia de como posso chamar o URL do aplicativo? Há algo que eu perdi na minha docker-compose.yml Arquivo?

Respostas:

1 para resposta № 1

Meses depois, volto a postar a resposta (bastante direta) à minha pergunta:

  • Remova o server_name entrada na configuração do host Nginx
  • Remova o extra_hosts entrada em docker-compose.yml arquivo (não é necessário, mas é inútil)

Basta chamar o servidor com o nome do contêiner Nginx como host (nginx Aqui):

 docker-compose exec php curl http://nginx