buildah-add(1) General Commands Manual buildah-add(1)

buildah-add - افزودن محتوای فایل‌ها، دایرکتوری‌ها یا نشانی‌های وب به کانتینر

buildah add [گزینه‌ها] container src [[src ...] dest]

محتوای یک فایل، نشانی اینترنتی (URL) یا یک دایرکتوری را به دایرکتوری کاری کانتینر یا یک مکان مشخص‌شده در کانتینر اضافه می‌کند. اگر یک فایل منبع محلی یک فایل آرشیو به نظر برسد، محتوای آن استخراج شده و به جای خود فایل آرشیو اضافه می‌شود. اگر یک دایرکتوری محلی به عنوان منبع مشخص شود، محتوای آن به مقصد کپی می‌شود.

--add-history

یک ورودی به تاریخچه اضافه می‌کند که شناسه یکتای (digest) محتوای اضافه‌شده را ثبت می‌نماید. مقدار پیش‌فرض false است.

نکته: شما همچنین می‌توانید مقدار پیش‌فرض --add-history را با تنظیم متغیر محیطی BUILDAH_HISTORY بازنویسی کنید: export BUILDAH_HISTORY=true

--allow-empty-wildcard

در صورت تنظیم روی true، اگر تطبیق الگو (globbing) با چیزی مطابقت پیدا نکند، خطایی برگردانده نمی‌شود. فقط زمانی معنادار است که --allow-wildcard روی true باشد. مقدار پیش‌فرض false است.

--allow-wildcard

امکان استفاده از الگوهای عمومی (glob) را در مسیرهای منبع فراهم می‌کند. هنگام تنظیم روی false، مسیرهای منبع حاوی نویسه‌های جانشین (*، ?، [) با خطا رد می‌شوند. مقدار پیش‌فرض true است.

--cert-dir مسیر

هنگام اتصال به رجیستری‌ها برای دریافت ایمیج‌های مشخص‌شده با فلگ --from، و هنگام اتصال به سرورهای HTTPS برای واکشی منابع از مکان‌های مشخص‌شده با نشانی‌های اینترنتی HTTPS، از گواهی‌های موجود در مسیر (*.crt، *.cert، *.key) استفاده می‌کند. دایرکتوری پیش‌فرض گواهی‌ها /etc/containers/certs.d است.

--checksum چک‌سام

چک‌سام محتوای منبع را بررسی می‌کند. مقدار چک‌سام باید یک رشته شناسه استاندارد کانتینر (digest) باشد. فقط برای منابع HTTP پشتیبانی می‌شود.

--chmod مجوزها

مجوزهای دسترسی به محتوای مقصد را تعیین می‌کند. قالب عددی یا نمادین را می‌پذیرد.

--chown مالک:گروه

مالکیت کاربری و گروهی محتوای مقصد را تعیین می‌کند.

--contextdir دایرکتوری

دایرکتوری زمینه ساخت (context). مشخص کردن یک دایرکتوری زمینه باعث می‌شود Buildah به دایرکتوری زمینه chroot کند. این بدان معناست که کپی فایل‌هایی که توسط پیوندهای نمادین به خارج از chroot اشاره می‌کنند با شکست مواجه خواهد شد.

--exclude الگو

از کپی کردن فایل‌های منطبق با الگوی مشخص‌شده خودداری می‌کند. این گزینه می‌تواند چندین بار مشخص شود. الگوها با مسیر هر فایل نسبت به دایرکتوری زمینه (یا در صورت استفاده از --from، نسبت به ریشه کانتینر یا ایمیج منبع) سنجیده می‌شوند. برای قالب‌های پشتیبانی‌شده به containerignore(5) مراجعه کنید.

--from کانتینر_یا_ایمیج

هنگام ارزیابی مسیرهای مطلق منبع و مسیر دایرکتوری زمینه، از دایرکتوری ریشه کانتینر یا ایمیج کاری مشخص‌شده به عنوان دایرکتوری ریشه استفاده می‌کند. اگر نیاز به دریافت (pull) یک ایمیج باشد، می‌توان از گزینه‌های شناخته‌شده توسط buildah pull استفاده کرد.

--ignorefile فایل

مسیر یک فایل جایگزین containerignore. (یا dockerignore.). مستلزم این است که --contextdir مشخص شده باشد.

--link

به‌جای تغییر سیستم‌فایل کانتینر در حال کار، یک لایه ایمیج مستقل برای فایل‌های اضافه‌شده ایجاد می‌کند. اگر buildah run فایلی ایجاد کند و buildah add --link فایلی به همان مسیر اضافه کند، فایل حاصل از buildah add --link در ایمیج نهایی تثبیت‌شده (committed) حضور خواهد داشت. لایه --link در زمان تثبیت و پس از اعمال تمام تغییرات سیستم‌فایل کانتینر اعمال می‌شود.

--no-follow-symlinks

هنگامی که یک منبع محلی یک پیوند نمادین است، پیوند را به عنوان یک پیوند نمادین کپی می‌کند، به جای اینکه پیوند را دنبال کرده (dereference) و محتوای هدف را کپی کند.

--quiet, -q

از چاپ شناسه (digest) محتوای اضافه‌شده خودداری می‌کند.

--retry تعداد_تلاش

تعداد دفعات تلاش مجدد در صورت بروز خطا هنگام واکشی ایمیج‌ها از رجیستری یا دریافت محتوا از نشانی‌های اینترنتی HTTPS.

پیش‌فرض 3 است.

--retry-delay مدت_زمان

مدت‌زمان تاخیر میان تلاش‌های مجدد در صورت بروز خطا هنگام واکشی ایمیج‌ها از رجیستری یا دریافت محتوا از نشانی‌های اینترنتی HTTPS.

پیش‌فرض 2s است.

--timestamp ثانیه‌ها

برچسب زمانی ("mtime") را برای محتوای اضافه‌شده دقیقاً روی این تعداد ثانیه از مبدأ زمان یونیکس (زمان یونیکس ۰، یعنی 00:00:00 UTC در ۱ ژانویه ۱۹۷۰) تنظیم می‌کند تا به ساخت‌های قطعی و تکرارپذیر (deterministic) کمک کند.

دایرکتوری مقصدی که محتوا در آن کپی می‌شود، به احتمال زیاد نشان‌دهنده زمانی خواهد بود که محتوا به آن اضافه شده است.

--tls-verify مقدار_بولی

نیاز به بررسی و تایید گواهی‌ها هنگام دریافت منابع از مکان‌های HTTPS یا هنگام واکشی ایمیج‌های ارجاع‌شده با فلگ --from* را الزامی می‌کند (پیش‌فرض true است). هنگام برقراری ارتباط با یک رجیستری ناامن نمی‌توان از اعتبارسنجی TLS استفاده کرد.

buildah add containerID '/myapp/app.conf' '/myapp/app.conf'

buildah add --chown myuser:mygroup containerID '/myapp/app.conf' '/myapp/app.conf'

buildah add --chmod 660 containerID '/myapp/app.conf' '/myapp/app.conf'

buildah add containerID '/home/myuser/myproject.go'

buildah add containerID '/home/myuser/myfiles.tar' '/tmp'

buildah add containerID '/tmp/workingdir' '/tmp/workingdir'

buildah add containerID 'https://github.com/containers/buildah/blob/main/README.md' '/tmp'

buildah add containerID 'passwd' 'certs.d' /etc

buildah add containerID '/tmp/myfiles-*' '/dest/'

buildah add --allow-empty-wildcard=true containerID '/tmp/logs-*' '/dest/'

اگر فایل containerignore. یا dockerignore. در دایرکتوری زمینه وجود داشته باشد، buildah add محتویات آن را می‌خواند. اگر هر دو وجود داشته باشند، از containerignore. استفاده می‌شود.

هنگامی که گزینه --ignorefile مشخص شده باشد، Buildah آن را خوانده و از آن برای تصمیم‌گیری در مورد اینکه کدام محتوا هنگام کپی در کانتینر کاری مستثنی شود، استفاده می‌کند.

کاربران می‌توانند مجموعه‌ای از الگوهای عمومی (glob) پوسته یونیکس را در یک فایل نادیده‌گیری مشخص کنند تا فایل‌ها/دایرکتوری‌های مورد نظر برای مستثنی شدن شناسایی شوند.

ابزار Buildah از یک نویسه جانشین ویژه ** پشتیبانی می‌کند که با هر تعداد دایرکتوری (از جمله صفر) مطابقت دارد. برای مثال، */.go تمام فایل‌هایی را که به go. ختم می‌شوند و در تمامی دایرکتوری‌ها یافت می‌شوند، مستثنی خواهد کرد.

نمونه فایل containerignore./.dockerignore.:

# here are files we want to exclude
*/*.c
**/output*
src

*/*.c

فایل‌ها و دایرکتوری‌هایی را که نام آن‌ها به c. ختم می‌شود در هر زیردایرکتوری سطح بالا مستثنی می‌کند؛ برای مثال، فایل منبع include/rootless.c.

**/output*

فایل‌ها و دایرکتوری‌هایی را که با output شروع می‌شوند از هر دایرکتوری مستثنی می‌کند.

src

فایل‌های با نام src و دایرکتوری src و همچنین هرگونه محتوای درون آن را مستثنی می‌کند.

خطوطی که با ! (علامت تعجب) شروع می‌شوند می‌توانند برای ایجاد استثنا در موارد مستثنی‌شده استفاده شوند. نمونه زیر یک فایل containerignore. است که از این سازوکار استفاده می‌کند:

*.doc
!Help.doc

هنگام کپی محتوا به درون کانتینر، همه فایل‌های doc. به جز Help.doc مستثنی می‌شوند.

این قابلیت با نحوه مدیریت فایل‌های containerignore. که در اینجا توضیح داده شده، سازگار است:

https://github.com/containers/common/blob/main/docs/containerignore.5.md

buildah(1), containerignore(5)

April 2021 buildah