कॉन्फ़िगरेशन फ़ाइल में IP को हार्डकोड करना अच्छा नहीं है। अन्य देवों के बारे में क्या? क्या होगा अगर आईपी बदल जाए?
जब भी संभव हो डॉक-संबंधित कॉन्फ़िगरेशन रेल ऐप में लीक नहीं होना चाहिए। इसलिए आपको config/environments/development.rb
फ़ाइल में env var का उपयोग करना चाहिए :
class Application < Rails::Application
# Check if we use Docker to allow docker ip through web-console
if ENV['DOCKERIZED'] == 'true'
config.web_console.whitelisted_ips = ENV['DOCKER_HOST_IP']
end
end
आपको .env
फ़ाइल में सही env var सेट करने चाहिए , संस्करण नियंत्रण में ट्रैक नहीं किया जाना चाहिए ।
में docker-compose.yml
आप env इंजेक्षन कर सकते हैं के साथ इस फ़ाइल से वार्स env_file
:
app:
build: .
ports:
- "3000:3000"
volumes:
- .:/app
links:
- db
environment:
- DOCKERIZED=true
env_file:
- ".env"
टिप्पणियों में प्राप्त शुल्क-तालिका के आधार पर, हम पर्यावरण चर के बिना भी समाधान बना सकते हैं:
class Application < Rails::Application
# Check if we use Docker to allow docker ip through web-console
if File.file?('/.dockerenv') == true
host_ip = `/sbin/ip route|awk '/default/ { print $3 }'`.strip
config.web_console.whitelisted_ips << host_ip
end
end
मैं सीखने के उद्देश्यों के लिए env var के साथ समाधान छोड़ दूँगा।
config/environments/development.rb
, @ydaetskcoR