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

buildah-copy - کپی محتویات فایل، نشانی اینترنتی یا دایرکتوری در دایرکتوری کاری کانتینر

buildah copy container src [[src ...] dest]

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

--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، از گواهی‌های موجود در مسیر (*.crt، *.cert، *.key) استفاده می‌کند. دایرکتوری پیش‌فرض گواهی‌ها /etc/containers/certs.d است.

--checksum چک‌سام

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

--chmod مجوزها

مجوزهای دسترسی به محتوای مقصد را تعیین می‌کند. قالب عددی یا نمادین را می‌پذیرد. اگر از --from استفاده نشود، مقدار پیش‌فرض 0755 است.

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

مالکیت کاربری و گروهی محتوای مقصد را تعیین می‌کند. اگر از --from استفاده نشود، مقدار پیش‌فرض 0:0 است.

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

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

--exclude الگو

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

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

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

--ignorefile فایل

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

--link

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

--no-follow-symlinks

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

--parents

دایرکتوری‌های والد را در مسیر آیتم‌های در حال کپی حفظ می‌کند؛ چه نسبت به بالای زمینه ساخت، چه نسبت به «نقطه محوری» (pivot point)، مکانی در مسیر منبع که با مؤلفه مسیری به نام "." مشخص شده است (یعنی جایی که "/./" در مسیر رخ می‌دهد).

--quiet, -q

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

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

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

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

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

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

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

--timestamp ثانیه‌ها

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

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

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

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

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

buildah copy --exclude=*/.md docs containerID 'docs' '/docs'

buildah copy --parents containerID './x/a.txt' './y/a.txt' '/parents'

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

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

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

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

buildah copy containerID '/tmp/workingdir' '/tmp/workingdir'

buildah copy containerID 'https://github.com/containers/buildah' '/tmp'

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

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

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

اگر فایل containerignore./.dockerignore. در دایرکتوری زمینه وجود داشته باشد، buildah copy محتویات آن را می‌خواند. اگر هر دو وجود داشته باشند، از 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./.dockerignore. است که از این سازوکار استفاده می‌کند:

*.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