Používam Docker pre moje vývojové prostredie PHP a nastavujem svoje obrázky pomocou Docker Compose takto:
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 je nakonfigurovaný (vo svojom súbore Docker) s názvom virtuálneho hostiteľa myapp.localhost.com
(server_name
), a to poukazuje na. \ t /var/www/myapp
zložky.
To všetko funguje dobre.
Ale tu je môj problém: moja webová aplikácia sa volá cez myapp.localhost.com
URL s cURL (v kóde PHP), ktoré sa dá ľahšie reprodukovať spustením tohto príkazu:
docker-compose run php curl http://myapp.localhost.com
Odpoveď cURL je nasledovná:
Chyba cURL 7: Nepodarilo sa pripojiť k portu myapp.localhost.com 80: Pripojenie bolo odmietnuté
Máte predstavu o tom, ako môžem volať adresu URL aplikácie? Je tu niečo, čo mi chýbalo docker-compose.yml
súbor?
odpovede:
1 pre odpoveď č. 1O niekoľko mesiacov neskôr som sa vrátil, aby som odpovedal na túto otázku:
- Odstrániť
server_name
v konfigurácii hostiteľa Nginx - Odstrániť
extra_hosts
vstup vdocker-compose.yml
súbor (nie je potrebný, ale je to zbytočné)
Jednoducho zavolajte server s názvom kontajnera Nginx ako hostiteľa (nginx
tu):
docker-compose exec php curl http://nginx