Dockerfile in Docker

Dockerfile چیست و چه کاری انجام میدهد؟

Dockerfile چیست و چه کاری انجام میدهد؟

داکر فایل یک داکیومنت متنی است که در آن مجموعه ایی از دستورات برای اسمبل کردن یک ایمیج قرار دارد.

در داکر فایل میتوان از هر دستوری که با خط فرمان در ارتباط است، استفاده کرد. داکر با استفاده از فراخوانی دستورالعمل های Dockerfile، به طور خودکار و اتوماتیک ایمیج ها را ایجاد میکند.

برای ساخت یک ایمیج در Dockerfile، از دستور Docker build استفاده میشود. برای اشاره به Dockerfile های موجود در هر جای فایل سیستم، می توان بعد از docker build از f- فلگ (flag) استفاده کرد.

$ docker build -f /path/to/a/Dockerfile .

 

برای آشنایی بیشتر با Image Docker میتوانید به مقاله Image و Container در داکر مراجعه کنید.

دستورالعمل های Dockerfile

دستورالعمل ها یا instruction های داکر به بزرگ یا کوچک بودن حروف حساس نیستند اما دارای یک سری قواعد و شرایط است که هنگام وارد کردن دستورات باید از آنها پیروی شود.

Docker دستورالعمل های Dockerfile را به ترتیب از بالا به پایین اجرا میکند. اولین دستورالعملی که استفاده می شود، FORM است که از آن برای مشخص کردن ایمیج اصلی استفاده میشود و بعد از آن متوان از دستورالعمل های RUN, CMD, FROM, EXPOSE, ENV و غیره استفاده کرد.

دستوراتی که با # شروع می شوند، به عنوان یک کامنت عمل میکنند.

در این قسمت دستورالعمل های پرکاربردی که در بیشتر موارد از آنها استفاده میشود را معرفی خواهیم کرد و به طور خلاصه وظایف و ویژگی های آنها را توضیح میدهیم.

FROM

این دستورالعمل، image اصلی را برای دستورالعمل های بعدی تنظیم میکند. یک Dockerfile معتبر باید با دستورالعمل FROM شروع شود.

برای مثال :

FROM ubuntu

 

LABEL

برای سازماندهی و مرتب کردن ایمیج های موجود در یک پروژه، میتوان به آنها LABEL اضافه کرد. برای تنظیم کردن LABEL های مختلف برای هر ایمیج، از دستورالعمل LABEL به صورت زیر استفاده میشود.

برای مثال:

LABEL vendorl = “JavaTpoint”

 

RUN

دستورالعمل RUN، برای نمایش دستورات مربوط به ایمیج های جاری، به صورت زیر استفاده میشود.

برای مثال:

RUN /bin/bash -c ‘source $HOME/.bashrc; echo $HOME’

 

CMD

دستورالعمل CMD ، برنامه داکر را توسط ایمیج اجرا میکند. بعد از به کار بردن دستورالعمل FORM باید از این دستورالعمل استفاده شود:

CMD [“executable”, “param1”, “param2”?]

 

با توجه به اینکه در هر Dockerfile فقط CMD میتواند وجود داشته باشد، فرمت دستور بالا بهترین روش برای استفاده از CMD است.

نکته: در صورتی که از چند CMD استفاده شود در آخر فقط یکی از آن نمایش داده میشود.

COPY

این دستورالعمل برای کپی کردن فایل های جدید، از قسمت سورس ها به فایل سیستم هایی که در کانتینر قرار دارند است. از این دستورالعمل به صورت زیر استفاده میشود:

COPY abc/ /xyz

 

قوانین استفاده از دستورالعمل COPY:

1 . source path ها باید درون یک متن ساخته شوند. امکان کپی کردن مسیر و آدرس ها نیست زیرا اولین قدم یک docker build ارسال دایرکتوری متن و زیرشاخه ها به docker daemon است.

2. اگر منبع یا سورس یک دایرکتوری باشد، تمام محتوای آن دایرکتوری کپی شده حاوی متادیتا (metadata) فایل سیستم میباشد.

WORKDIR

از دستورالعمل WORKDIR، برای تنظیم کردن یک فهرست کار برای هر یک از دستورالعمل های RUN ، CMD و COPY استفاده می شود تا با استفاده از آن دستورات، از Dockerfile پیروی کند. در صورتی که یک فهرست کار ساخته نشده باشد، به طور پیش فرض و خودکار ایجاد می شود. میتوان در هر Dockerfile چندین بار از WORKDIR استفاده کرد.

برای مثال :

WORKDIR /var/www/html

 

بستن