<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های نورو کلود</title><link>https://virgool.ir/feed/@norocloud</link><description></description><language>fa</language><pubDate>2026-11-12 16:31:28</pubDate><image><url>https://files.virgool.ir/upload/users/21130/avatar/avatar.png</url><title>نورو کلود</title><link>https://virgool.ir/@norocloud</link></image><item><title>چطور یک Dockerfile بنویسیم</title><link>https://virgool.ir/@norocloud/چطور-یک-داکر-فایل-بنویسیم-nyzjelkoid11</link><description>تو این مطلب قصد داریم بهتون آموزش بدیم چطور یک داکر فایل ساده بنویسید. قبلش باید بدونیم که اصلا Docker چی هست. برای اینکه بدونیم داکر چیه شما رو به خوندن این مطلب دعوت می‌کنیم.داکر فایل چیه؟ داکر فایل یک فایله که با کمک اون میشه ایمیج دلخواه خودمون رو بسازیم. به همین سادگی.چرا باید ایمیج دلخواه خودمون رو بسازیم؟ و چرا نباید از ایمیج های آماده ای که داخل docker hub وجود داره استفاده کنیم؟ جواب ساده است، مثال اینکه که زمانی که شما به ایمیجی از یک دیتابیس مثل mysql یا mongo نیاز دارین اکثر اوقات ایمیجی که داخل docker hub هستش رو استفاده می‌کنیم چون اکثر اوقات نیازی به تغییر نداره ولی فرض کنین که بخوایم کد برنامه ای که با nodejs نوشتیم رو ببریم داخل کانتینر، اون وقت نمیشه از ایمیج های آماده استفاده کرد چون طبیعتا این ایمیج‌ها خام هستند و شامل کد برنامه ما نمیشن. راهکار اینه که یک داکر فایل بنویسیم که ایمیج پایه‌اش از nodejs هست و صرفا کد های ما بهش اضافه شده تا بتونه برنامه ما رو اونطوری که میخوایم و config می‌کنیم ران کنه. در واقع داکر فایل به ما کمک میکنه ایمیج های جدید داکر رو بسازیم. در واقع این داکر فایل مثل یک دستور آشپزی هستش که داکر از روی اون دستور ایمیج مارو میسازه. هنگام ساخت این ایمیج داکر کدهای برنامه و اگر enviormnet variable ای رو تعریف کرده باشیم داخل کانتینر میزاره.چطور داکر فایل رو آماده کنیم؟این داکر فایل یک فایل تکست هست که کامند های مخصوص به خودش رو میگیره اون کامند هایی که معمولا استفاده میشه یک تعداد محدودی هستند و یادگیریشون ساده‌ است با انجام هر کامند یک لایه به ایمیج اضافه میشه FROM node:latestکامند FROM مشخص میکنه ایمیجی که ساخته خواهد شد از چه ایمیجی ساخته بشه یا اصطلاحا ایمیج بیس ایمیج جدید چی باشه، تو این مثال ما ایمیج پایه خودمون رو node:latest مشخص کردیم.WORKDIR /usr/src/appاین کامند یک دایرکتوری در /usr کانتینر به وجود میاره. و همچنین داخل کانتینر دایرکتوری رو به همین دایرکتوری ای که ساختیم تغییر میده و در واقع تمام کار‌ها ازین به بعد در این دایرکتوری و مسیر انجام میشن./. COPY package.jsonبا این کامند به داکر میگیم که فایل package.json رو (از داخل هاست) به داخل کانتینر کپی کنه. ازونجا که داخل کانتینر ما در دایرکتوری /usr/src/app هستیم این فایل در همین دایرکتوری کپی میشه.RUN npm installبا کامند RUN می‌تونیم کامند های لینوکسی رو اجرا کنیم. به این نکته توجه کنین که دستور RUN زمان ساخته شدن ایمیج اجرا میشه و نه زمانی که کانتینر ران میشه. . COPY میدونین دایرکتوری جاری در host همون دایرکتوری ای‌ هست که اپ ما داخلش هست. و دایرکتوری جاری در کانتینر هم /usr/src/app هست که ینی کدی که ما زدیم رو میبره کپی می‌کنه داخل کانتینرEXPOSE 8080با این کامند ساده هم پورت 8080 (فرض بر اینه که کد nodejs ای که نوشتین روی پورت 8080 سرویس می‌ده) رو از کانتینر باز‌ می‌کنه.[&#34;npm&#34;,&#34;start&#34;]CMDکل داکر فایلی که نوشتیم رو با هم ببنیم:FROM node:latest# Create app directoryWORKDIR /usr/src/app# Install app dependenciesCOPY package*.json ./RUN npm install# If you are building your code for production# RUN npm install --only=production# Bundle app sourceCOPY . .EXPOSE 8080CMD [ &#34;npm&#34;, &#34;start&#34; ]در نهایت با دستور . docker build داکر از روی داکر فایلی که نوشتین یک ایمیج درست میکنه که میتونین با کامند docker images ببینین </description><category>نورو کلود</category><author>نورو کلود</author><pubDate>Sun, 25 Nov 2018 23:54:21 +0330</pubDate></item></channel></rss>