मैं अपने PHP के विकास के माहौल के लिए Docker का उपयोग करता हूं, और मैंने अपनी छवियाँ Docker के साथ इस तरह से स्थापित की हैं:
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 कॉन्फ़िगर किया गया है (इसकी डॉकर फ़ाइल में) जिसका नाम वर्चुअल होस्ट है myapp.localhost.com
(server_name
पैरामीटर) और यह इंगित करता है /var/www/myapp
फ़ोल्डर।
यह सब ठीक काम करता है।
लेकिन यहां मेरी समस्या है: मेरा वेब ऐप खुद के माध्यम से कॉल कर रहा है myapp.localhost.com
URL के साथ cURL (PHP कोड में), जिसे इस कमांड को चलाकर आसानी से पुन: पेश किया जा सकता है:
docker-compose run php curl http://myapp.localhost.com
CURL प्रतिक्रिया निम्नलिखित है:
cURL त्रुटि 7: myapp.localhost.com पोर्ट 80 से कनेक्ट करने में विफल: कनेक्शन ने इनकार कर दिया
क्या आपके पास इस बारे में कोई विचार है कि मैं ऐप URL को कैसे कॉल कर सकता हूं? क्या कोई ऐसी चीज है जो मुझे याद आती है docker-compose.yml
फाइल?
उत्तर:
उत्तर № 1 के लिए 1महीनों बाद, मैं अपने प्रश्न का उत्तर (काफी सीधा) पोस्ट करने के लिए वापस आता हूं:
- हटाए
server_name
Nginx होस्ट कॉन्फ़िगरेशन में प्रविष्टि - हटाए
extra_hosts
में प्रवेशdocker-compose.yml
फ़ाइल (आवश्यक नहीं है, लेकिन यह बेकार है)
बस होस्ट के रूप में Nginx कंटेनर नाम के साथ सर्वर को कॉल करें (nginx
यहाँ):
docker-compose exec php curl http://nginx