ঠিক আছে, আমরা এই ডককারের বিবর্তন ভেঙ্গে ফেলি. জিনিসগুলি কীভাবে পরিবর্তন করে তা বোকা।
মনে রাখবেন যখন ডোকার অনুভব করেছিলেন ... একটি অশ্লীল পুকুরের সাথে লড়াই করছিলেন? এত কমান্ড, এত ধারণা। নির্মাণ, চালান, চাপুন, তুলুন, ভলিউম, নেটওয়ার্ক ... আমার মাথা ঘুরছিল।দরকার, কিন্তু এটি সবসময় একটু কঠিন অনুভূত হয়, একটু ... ফ্রিকোয়েন্সি পূর্ণ।docker ps -a
অতএব, মনে রাখার চেষ্টা করে যেএকগত সপ্তাহের কমান্ড
তারপর, ধীরে ধীরে, জিনিসগুলি ক্লিক করতে শুরু করে। একটি বড় ইউরিকা মুহূর্ত নয়, কিন্তু ছোট "আহা!" আবিষ্কারের একটি সিরিজ। ছোট ট্রিকস, অপ্টিমাইজেশন, ওয়ার্কফ্লো সংশোধন। হ্যাক, আমি অনুমান করি? এবং সত্যিই, তারা আমার দৈনন্দিন রুটিনে এতটুকু ঢুকে গেছে যে আমি আর তাদের সম্পর্কে কখনও ভাবি না।আমি কিভাবে কাজ করি.
এখানে খেলোয়াড়রা যে পরিবর্তন করেছে:
টার্মিনাল অ্যালিসেস: স্যানিটি স্যাভারস
প্রথম ম্যাচের বড় জয়?Aliases.️️️️️️️️️️️️️️docker-compose up -d --build
অথবাdocker ps
কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো কখনো।.bashrc
অথবা.zshrc
একটি আবিষ্কার ছিল।
# My sanity savers
alias dcu='docker-compose up -d'
alias dcd='docker-compose down'
alias dcb='docker-compose build'
alias dcr='docker-compose run --rm' # For running one-off commands
alias dps='docker ps'
alias dpa='docker ps -a'
alias di='docker images'
alias dip='docker image prune -f' # Prune dangling images
alias dvp='docker volume prune -f' # Prune unused volumes
alias dsp='docker system prune -af' # The big cleanup! 💥
টাইপিংdcu
পুরো shebang এর পরিবর্তে? হ্যাঁ, মিলিসেকেন্ড সংরক্ষিত! এটা trivial শোনা যায়, কিন্তু দিনে কয়েক ডজন দ্বারা তা সংগৃহীত ... এটি যোগ করে. আমার আঙুল আমাকে ধন্যবাদ. কম টাইপিং, কম টাইপ, আরো প্রবাহ।
এখান থেকে docker এর চূড়ান্ত cheatsheet পেতে:ডকুমেন্ট Cheatsheet
২. শক্তিশালী.dockerignore
ডাউনলোড করুন Slimming Down Builds
এরপর আসে.dockerignore
আরেকটি ‘দু’ মুহূর্ত আমি জানতাম.gitignore
অবশ্যই, কিন্তু আমি প্রথমে বুঝতে পারিনি কতটা গুরুত্বপূর্ণ.dockerignore
আমার প্রাক্তন Docker Builds ছিলএত ধীরকেন? কারণ বিল্ডিং পরিবেশ পাঠানো হয়েছিলসবডাউনলোড করুন Docker Daemonnode_modules
, লগ, সাময়িক ফাইল, স্থানীয় নির্মাণ বস্তু ... সবকিছু!
সঠিক সৃষ্টি.dockerignore
ফাইল, আমি প্রয়োজন ছিল না সব বর্জ্য তালিকাভেতরেচিত্র নির্মাণ প্রক্রিয়া? হঠাৎ করেই, নির্মাণগুলি দ্রুততর ছিল. চিত্রগুলি ছোট ছিল (কখনও কখনও উল্লেখযোগ্যভাবে তাই)।এইবাকিগুলোকে অবহেলা করুন” কম ঝামেলা, দ্রুত প্রতিক্রিয়া লুক।
3. মাল্টি-স্টেজ বিল্ড: লেইন, মাত্রা উৎপাদন মেশিন ➡️
Multi-stage builds... ঠিক আছে, এই এক শুরুতে একটু উন্নত মনে হয়. ধারণা চমৎকার, যদিও।
- ধাপ 1: অ্যাপ্লিকেশন আর্টফ্যাক্ট তৈরির জন্য প্রয়োজনীয় সমস্ত নির্মাণ সরঞ্জাম, কম্পাইলার, SDK এবং নির্ভরতাগুলির সাথে একটি ভিত্তিক ইমেজ ব্যবহার করুন (যেমন একটি কম্পিউল করা বাইনারি বা বুকিং জ্যোতিষ্কোপ)।
- ধাপ 2: একটি নতুন, পরিষ্কার, ন্যূনতম বেস ইমেজ (যেমন আলপাইন বা অবিশ্বাসী) শুরু করুন।
- কপি: শুধুমাত্র প্রথম পর্যায়ে থেকে এই পরিষ্কার দ্বিতীয় পর্যায়ে চূড়ান্ত বস্তুটি কপি করুন।
ফলাফল? ছোট উৎপাদন ইমেজ! নির্মাণ সরঞ্জাম এবং ডেভেলপমেন্টগুলি (যা একটি নিরাপত্তা ঝুঁকিও) দিয়ে বর্ধিত ইমেজগুলি সরবরাহ করার পরিবর্তে, আমি লেইন ইমেজগুলি সরবরাহ করিশুধুঅ্যাপ্লিকেশনটি চালানোর জন্য কি দরকার। আমার মাথা সিন্ট্যাক্সের চারপাশে জড়িয়ে ফেলতে একটু সময় লেগেছিল, কিন্তু ওয়াও, ইমেজের আকার এবং নিরাপত্তা অবস্থার মধ্যে পার্থক্য বিশাল।
ডককার কম্পোজার ওভার্রিডস: টেমিং পরিবেশ ️
চলুন কথা বলিDocker Compose override
ফাইল. বিভিন্ন পরিবেশগুলি পরিচালনা করা একটি ব্যথা ছিল. ডেভেলপারদের লাইভ কোড পুনরায় লোড করার জন্য ভলিউমগুলি প্রয়োজন, ডেবিগ পোর্টগুলি খোলা। Prod বিভিন্ন পরিবেশ পরিবর্তনশীল প্রয়োজন, সম্ভবত আরও কঠোর সম্পদ সীমা, সম্ভবত একটি ভিন্ন প্রবেশ পয়েন্ট।docker-compose.yml
জটিল, মন্তব্য করা বিভাগ বা জটিল অন্তর্ভুক্তif
পরিবেশগত পরিবর্তনগুলির উপর ভিত্তি করে।
আবিষ্কারdocker-compose.override.yml
হ্যাঁ, তুমি নিঃসন্দেহে ভাগ্যবান।docker-compose.yml
সাধারণ কনফিগারেশন. তারপর, আপনি তৈরি করুনdocker-compose.override.yml
(যা সাধারণত অস্বীকার করা হয়.gitignore
) আপনার স্থানীয় উন্নয়ন সংশোধন - কোড ডিরেক্টরিগুলি মাউন্টিং, বিভিন্ন পোর্ট প্রদর্শন, ডেবিগিং সরঞ্জামগুলি যোগ করুন।override
আপনি এমনকি নির্দিষ্ট ফাইল থাকতে পারেন যেমনdocker-compose.prod.yml
এবং ব্যবহার করুন-f
পতাকা :docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d
. চিন্তার পরিষ্কার বিচ্ছেদ. ডেভিং সেটিংসের আর কোনও অসুবিধাজনক অঙ্গীকার নেই!
5. নিয়মিত পরিষ্কার: সিস্টেম Tidy রাখা ✨
এবং অবশেষে, অভ্যাসregular cleanupডাউনলোড করতে পারেনএতআপনি যদি সাবধান না হন তাহলে সময়ের সাথে সাথে ক্রুফট করুন. ঝুঁকিপূর্ণ ইমেজ (পূর্বের বিল্ড থেকে অ্যাগেড লেয়ার), অব্যবহৃত ভলিউম, থামানো কনটেইনার, পুরাতন বিল্ড ক্যাশ... আমার ডিস্ক স্পেস রহস্যময়ভাবে নিখোঁজ হয়ে যায়।
নিয়মিত দৌড়ানোর গতিশীলতাdocker system prune -af
(অর্থনৈতিক পদ্ধতি) অথবা আরো লক্ষ্যমাত্রাdocker image prune
,docker volume prune
,docker network prune
এবংdocker builder prune
এটি ডিজিটাল ডিল্কটারিংয়ের মতো অনুভব করে. এটি জিনিসগুলি নরমভাবে চলতে থাকে, অদ্ভুত ক্যাশিং সমস্যাগুলি প্রতিরোধ করে ("কেন আমার পরিবর্তন না হয় না?"), এবং মূল্যবান গিগাবাইট মুক্ত করে।dsp
(আমার জন্য অ্যালবাম)docker system prune -af
) এখন একটি সন্তোষজনক, প্রায় চিকিত্সা, রুটিন।
সুতরাং হ্যাঁ, এইগুলি আর শুধু 'হ্যাক' নয়. তারা গঠিত হয়. তারা পেশী মেমরি।.dockerignore
আমি প্রথম ফাইলগুলির মধ্যে একটি তৈরি করি। মাল্টি-স্টেজ বিল্ডিংগুলি সম্ভাব্য জীবিত যাওয়ার জন্য ডিফল্ট। কম্পোজার ওভাররেডগুলি পরিবেশের পার্থক্যগুলি সহজেই পরিচালনা করে।
ডোকার একটি শক্তিশালী, শক্তিশালী সাহায্যকারী হয়ে গিয়েছিল, যা এখন আমার পথ থেকে বেরিয়ে আসে।আমিএটি শুধুমাত্র ডোকার নিজেই সম্পর্কে নয়; এটি কিভাবে এই ছোট ছোট বিস্তারিত হালকা আমার সমস্ত উন্নয়ন এবং বিতরণ কাজ ফ্লোর. এটা অবশ্যই আমার জীবনের অংশ হয়ে গেছে, অথবা অন্তত, আমার ডিজিটাল জীবন. এবং সত্যিই?