021-71053903 [email protected] پشتیبانی از شنبه تا چهارشنبه ساعت 9 الی 16

نوشتن داکرفایل (انواع build context)

در این قسمت ما قرار است که با نحوه ساخت داکرفایل از طریق local build context و remote build context آشنا شویم در عین حال همچنان ازstdin  یا ورودی استاندارد برای ارسال داکر فایل به داکر استفاده کنیم.

ساخت یک ایمیج از local build context و داکرفایل از طریق stdin ( ورودی استاندارد )

برای ساختن یک ایمیج با استفاده از فایلها در سیستم فایل محلی و ارائه داکرفایل از stdin ( ورودی استاندارد ) میتوانید از این سینتکس استفاده کنید.

در سینتکس f- و یا file–  برای مشخص نمودن داکر فایل و با استفاده از یک خط تیره ” – ”  نام فایل را مشخص میکنیم که دستورالعملی است که داکر میتواند طبق آن عمل کرده و داکرفایل را از stdin ( ورودی استاندارد ) بخواند.

docker build [OPTIONS] -f- PATH

مثال زیر از دایرکتوری فعلی به عنوان build context استفاده میکند و با استفاده از داکرفایلی که از طریق ورودی استاندارد و here document عبور داده شده یک ایمیج میسازد

# create a directory to work in
mkdir example
cd example

# create an example file
touch somefile.txt

# build an image using the current directory as context, and a Dockerfile passed through stdin
docker build -t myimage:latest -f- . <<EOF
FROM busybox
COPY somefile.txt .
RUN cat /somefile.txt
EOF

ساخت یک ایمیج از remote build context  و داکرفایل از طریق stdin ( ورودی استاندارد )

با این سیتنکس میتوانید ایمیج خود را با استفاده از فایلهای قرار گرفته در یک مخزن (repository) گیت (git) بسازیم و همچنین داکرفایل را از ورودی استاندارد دریافت کنیم.

مانند مثال بالا در اینجا هم با استفاده از f- و یا  file– داکرفایل خود را مشخص میکنیم و با استفاده از خط تیره ” – ” به عنوان filename مشخص میکنیم که طبق دستورالعمل داده شده به داکر، داکرفایل باید از ورودی استاندارد خوانده شود.

docker build [OPTIONS] -f- PATH

این سینتکس زمانی مفید و کارآمد است که شما بخواهید با استفاده از یک مخزن (repository) که حاوی داکرفایل نیست ایمیجی را build کنید یا بسازید و یا زمانی که میخواهید با داکرفایل سفارشی شده(custom) بدون اینکه fork خود را در مخزن (repository) حفظ کنید.

مثال زیر یک ایمیج میسازد که با استفاده از داکرفایلی که از stdin و یا ورودی استاندارد میگیرد فایل hello.c را از مخزن “hello-world” Git repository on GitHub اضافه میکند.

docker build -t myimage:latest -f- https://github.com/docker-library/hello-world.git <<EOF
FROM busybox
COPY hello.c .
EOF

نحوه کار:

هنگام ساختن یک ایمیج با استفاده از مخزن از راه دور(remote) Git به عنوان build context ، یک git clone از مخزن(repository) را در دستگاه محلی(کامپیوتری که دستور روی آن زده شده) انجام می دهد و آن پرونده ها را به عنوان build context برای Daemon ارسال می کند. این ویژگی نیاز به نصب git بر روی هاست که در آن فرمان docker build را اجرا می کنید دارد

مقالات مرتبط

بهترین روش برای نوشتن داکرفایل ( pipe – stdin )
بهترین روش ها برای نوشتن داکرفایل(build context)
بهترین روش ها برای نوشتن داکرفایل
همچنین شما میتوانید از اینجا و اینجا سایر مقالات در مورد داکر را مطالعه کنید.

محمد حجازی

31 مطلب منتشر شده

محمد حجازی هستم برنامه نویس و علاقمند به تکنولوژی و کامپیوتر. در تلاشیم که همه با هم یه قدم در راستای گسترش علم برداریم.

درباره این مطلب نظر دهید !

مطالب پرمخاطب پایتونی ها

جعل آدرس IP یا IP Spoofing چیست؟!!

IP Spoofing چیست؟!!

4
دقیـقه مطالعه
ادامه ...

محصولات فروش پایتونی ها

%60
تخفیف

آموزش فیگما (Figma)

30,000 تومان
3
%69
تخفیف

آموزش برنامه نویسی پایتون

35,000 تومان
2