একটি কনফিগারেশন ফাইলে আইপি হার্ডকডিং ভাল নয়। অন্যান্য ডিভসের কী হবে? আইপি পরিবর্তন হলে কী হবে?
ডকার-সম্পর্কিত কনফিগারেশনটি যখনই সম্ভব হবে তখন রেল অ্যাপগুলিতে ফাঁস হওয়া উচিত নয়। এজন্য আপনার config/environments/development.rb
ফাইলটিতে env vars ব্যবহার করা উচিত :
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
ভার্সন নিয়ন্ত্রণে ট্র্যাক না করে কোনও ফাইলের মধ্যে আপনার সঠিক এনভির ভার্স সেট করা উচিত ।
ইন docker-compose.yml
আপনি env উদ্বুদ্ধ করতে পারেন এই ফাইল থেকে Vars 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
, @ ইয়াদেটসকোআর