প্রকল্প সম্পর্কে
Baseimage-docker হল একটি Docker বেস ইমেজ যা Ubuntu-এর উপর ভিত্তি করে এবং কন্টেইনারের ভিতরে ব্যবহারের জন্য সামঞ্জস্য করা হয়েছে। এটি Docker Hub এবং GHCR-এ `phusion/baseimage` হিসেবে প্রকাশিত, এবং নিজের ইমেজ তৈরির জন্য একটি সূচনা বিন্দু হিসেবে উদ্দেশ্য।
প্রকল্পটি যুক্তি দেয় যে স্টক Ubuntu কন্টেইনারের জন্য ডিজাইন করা নয়: এর Upstart init বাস্তব বা ভার্চুয়ালাইজড হার্ডওয়্যার ধরে নেয়, এবং অনেক কন্টেইনার কর্নার কেস ভুল করা সহজ। Baseimage-docker প্রয়োজনীয় ফিক্স এবং প্রশাসনিক টুলস একত্রিত করে।
এতে যা অন্তর্ভুক্ত:
- একটি সঠিক init প্রসেস, `/sbin/my_init`, যা এতিম চাইল্ড প্রসেস রিপ করে (জম্বি জমা এড়িয়ে) এবং শিশুদের কাছে SIGTERM পাঠায় যাতে তারা SIGKILL হওয়ার পরিবর্তে পরিষ্কারভাবে বন্ধ হতে পারে।
- Upstart-এর পরিবর্তে runit, সার্ভিস সুপারভিশন এবং ক্র্যাশ হওয়া ডেমনগুলির স্বয়ংক্রিয় পুনরায় চালুর জন্য ব্যবহৃত হয়।
- syslog-ng, যা শুধুমাত্র স্থানীয়ভাবে শোনে এবং `docker logs`-এ বার্তা ফরোয়ার্ড করে, সাথে logrotate।
- cron, এবং একটি SSH সার্ভার যা ডিফল্টভাবে নিষ্ক্রিয় এবং শুধুমাত্র কী-ভিত্তিক প্রমাণীকরণের অনুমতি দেয়।
- `setuser` অন্য ব্যবহারকারী হিসেবে সঠিক `$HOME` সহ কমান্ড চালানোর জন্য, এবং `install_clean` apt ইনস্টলের জন্য যা ক্যাশে পরিষ্কার করে।
- Docker-এর সাথে APT অসামঞ্জস্যের জন্য ফিক্স।
ব্যবহার: `FROM phusion/baseimage:<VERSION>` এবং `CMD ["/sbin/my_init"]` সেট করুন। অতিরিক্ত ডেমন যোগ করা হয় `/etc/service/<NAME>`-এর অধীনে এক্সিকিউটেবল `run` স্ক্রিপ্ট তৈরি করে; runit সেগুলি শুরু করে এবং প্রস্থানে পুনরায় চালু করে। স্টার্টআপ স্ক্রিপ্ট `/etc/my_init.d` (লেক্সিকোগ্রাফিক ক্রমে চালিত) বা `/etc/rc.local`-এ রাখা যেতে পারে, এবং অবশ্যই কোড 0 দিয়ে প্রস্থান করতে হবে।
`docker run --env` বা Dockerfile `ENV`-এর মাধ্যমে পাস করা এনভায়রনমেন্ট ভেরিয়েবল `my_init` `/etc/container_environment` থেকে আমদানি করে, তারপর শেল এবং JSON ফরম্যাটে ডাম্প করে যাতে যেকোনো ভাষার সার্ভিস এবং স্ক্রিপ্ট মূল মান পড়তে পারে। ডিরেক্টরিটি রুট-মালিকানাধীন এবং ডিফল্টভাবে `docker_env` গ্রুপে সীমাবদ্ধ কারণ মান সংবেদনশীল হতে পারে। শিশুদের বন্ধ করার জন্য টাইমআউট `KILL_PROCESS_TIMEOUT` এবং `KILL_ALL_PROCESSES_TIMEOUT` দিয়ে টিউন করা যায়।
README বলে যে ইমেজটি প্রায় 8.3 MB RAM ব্যবহার করে এবং নিজস্ব ফ্রেমিংয়ে Busybox বা Alpine-এর চেয়ে হালকা। এটি আরও ব্যাখ্যা করে যে একটি কন্টেইনারে একাধিক OS প্রসেস চালানো Docker-এর একক-লজিক্যাল-সার্ভিস দর্শনের সাথে সামঞ্জস্যপূর্ণ, এবং প্রকল্পটি কোনো পদ্ধতি বাধ্যতামূলক করে না। Ubuntu 26.04 LTS GNU Coreutils-এর পরিবর্তে Rust Coreutils পাঠায়, যা README একটি বিবেচনা হিসেবে উল্লেখ করে।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.