DEV Community

Mahmud Ibrahim
Mahmud Ibrahim

Posted on

Dockerfile Cheat Sheet – বাংলা গাইড

আপনি যদি ডকার নিয়ে কাজ করেন, তাহলে Dockerfile ফাইল লিখতে পারাটা একটি অনিবার্য কাজ আপনার জন্য। এই চিটশীটে Dockerfile এর primary instruction set গুলো সংক্ষেপে তুলে ধরা হলো—বাংলা ভাষায়, যেন সহজে শেখা যায়।

🐳 FROM
Usage:

  • FROM {image}
  • FROM {image}:{tag}
  • FROM {image}@{digest}

Example:

FROM node:18-alpine
Enter fullscreen mode Exit fullscreen mode

🔹 ইমেজ তৈরি করার জন্য কোন বেজ ইমেজ ব্যবহার হবে তা নির্ধারণ করে।
🔹 এটি অবশ্যই প্রথম ইনস্ট্রাকশন হতে হবে (কমেন্ট বাদে)।
🔹 :tag বা @digest নির্দিষ্ট করা যেতে পারে। না দিলে latest ধরা হয়।

👤 MAINTAINER (Deprecated)
Usage: Maintainer {name}

MAINTAINER আপনার নাম <ইমেইল>
Enter fullscreen mode Exit fullscreen mode

🔸 ইমেজের লেখক (Author) হিসেবে তথ্য সংরক্ষণ করে।
❌ এটি পুরানো হয়ে গেছে, এখন LABEL ব্যবহার করা হয়।

⚙️ RUN
Usage: Run {command}, RUN ["executable", "param1", "param2"]
Example:

RUN apt-get update && apt-get install -y curl
Enter fullscreen mode Exit fullscreen mode

🔹 ইমেজ তৈরির সময় কমান্ড রান করে।
🔹 Shell ফর্ম ও Exec ফর্মে ব্যবহার করা যায়।

🧠 CMD: Shell vs Exec
Usage: CMD ["executable", "param1", "param2"] --> exec form
CMD command param1 param2 --> shell form

Example:

CMD ["node", "app.js"]
CMD ["/bin/ping","localhost"]
Enter fullscreen mode Exit fullscreen mode

🔸 কনটেইনার চালুর সময় ডিফল্ট কমান্ড বা আর্গুমেন্ট নির্ধারণ করে।
🔸 শুধুমাত্র একটি CMD কার্যকর হয়।

🏷️ LABEL

LABEL maintainer="আপনার নাম" version="1.0"
Enter fullscreen mode Exit fullscreen mode

🔹 মেটাডাটা যোগ করতে ব্যবহৃত হয়।

🌐 EXPOSE
Usage: Expose {port} [ ...]
Example:

EXPOSE 3000
Enter fullscreen mode Exit fullscreen mode

🔹 কোন পোর্টগুলো অ্যাপ্লিকেশন শুনছে তা জানায়।
🔹 কিন্তু এটি পোর্ট এক্সপোজ করে না, -p দিয়ে করতে হয়।

🌱 ENV
Usage: Env{key} {value}
Env = [=...]

ENV NODE_ENV=production
Enter fullscreen mode Exit fullscreen mode

🔹 এনভায়রনমেন্ট ভ্যারিয়েবল সেট করে।
🔹 পরবর্তীতে ব্যবহারযোগ্য থাকে।

📂 ADD vs COPY
Usage: ADD [ ...]
COPY [...]

Example:

ADD ./source /app
COPY ./source /app
Enter fullscreen mode Exit fullscreen mode

🔹 COPY: সাধারণ কপি করা।
🔹 ADD: কপি ছাড়াও .tar.gz আনজিপ করে বা রিমোট ইউআরএল থেকেও ফাইল নামায়।

📁 VOLUME
Usage: Volume["path", ....]
Volume path [path....]

Example:

VOLUME ["/data"]
Enter fullscreen mode Exit fullscreen mode

🔹 হোস্ট বা অন্য কনটেইনার থেকে ডেটা মাউন্ট করার জন্য নির্দিষ্ট লোকেশন তৈরি করে।
🔹 উদাহরণ: লগ, ডেটাবেস ডেটা সংরক্ষণের জন্য।

📌 WORKDIR
Usage: Workdir {/path/to/workdir}
Example:

WORKDIR /app
Enter fullscreen mode Exit fullscreen mode

🔹 পরবর্তী RUN, CMD, COPY, ADD ইনস্ট্রাকশনগুলো এই ডিরেক্টরিতে চালানো হবে।
🔹 একাধিকবার ব্যবহার করা যায়। আপেক্ষিক পাথও দেওয়া যায়।

🛠️ ARG

ARG NODE_VERSION=18
Enter fullscreen mode Exit fullscreen mode

🔹 বিল্ড টাইম ভ্যারিয়েবল যা --build-arg দিয়ে পাস করা যায়।
🔹 ENV ভ্যারিয়েবল ARG-কে override করে।
🔹 নিরাপত্তার জন্য সিক্রেট তথ্য ARG দিয়ে না দেওয়াই উত্তম।

🔁 ONBUILD

ONBUILD COPY . /app
Enter fullscreen mode Exit fullscreen mode

🔹 ভবিষ্যতে এই ইমেজ অন্য কেউ FROM করলে তখন এই ইনস্ট্রাকশনগুলো চালানো হবে।
🔹 শুধুমাত্র child ইমেজে চলে, grandchild এ না।

🛑 STOPSIGNAL

STOPSIGNAL SIGKILL
Enter fullscreen mode Exit fullscreen mode

🔹 কনটেইনার থামানোর সময় কোন সিগন্যাল পাঠানো হবে তা নির্ধারণ করে (যেমন SIGINT, SIGTERM)।

🏥 HEALTHCHECK

HEALTHCHECK --interval=30s --timeout=10s --retries=3 \
  CMD curl -f http://localhost:3000 || exit 1
Enter fullscreen mode Exit fullscreen mode

🔹 কনটেইনার সুস্থ আছে কিনা তা পরীক্ষা করে।
🔹 0 মানে healthy, 1 মানে unhealthy।
🔹 HEALTHCHECK NONE দিয়ে এটি নিষ্ক্রিয় করা যায়।

📘 উপসংহার
এই ছিল Dockerfile এর মৌলিক ইন্সট্রাকশনগুলোর বাংলা সংক্ষিপ্ত বিবরণ।

🔜 পরবর্তী পর্বে:
👉 Dockerfile লেখার সেরা কিছু Best Practices!
👉 কিভাবে ডকার ইমেজ ছোট, দ্রুত এবং নিরাপদ রাখা যায়।

ফলো করুন এবং কমেন্টে জানান, কোন অংশটা আপনার সবচেয়ে দরকারি লেগেছে!

Top comments (0)