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

buildah-push - ارسال و بارگذاری ایمیج به رجیستری یا مقصد مشخص

buildah push [گزینه‌ها] image [destination]

ارسال (push) یک ایمیج از فضای ذخیره‌سازی محلی به یک مقصد مشخص، به همراه فشرده‌سازی یا استخراج لایه‌ها در صورت نیاز.

ایمیج ذخیره‌شده در فضای ذخیره‌سازی محلی کانتینر (container/storage).

شناسه DESTINATION مکانی است که ایمیج کانتینر به آن ارسال (push) می‌شود. این گزینه از تمامی پروتکل‌های انتقال موجود در containers-transports(5) پشتیبانی می‌کند (مثال‌های زیر را ببینید). اگر هیچ پروتکل انتقالی مشخص نشود، از روش انتقال docker (یعنی رجیستری کانتینر) استفاده می‌شود.

--all

اگر ایمیج مشخص‌شده یک فهرست مانیفست (manifest list) یا نمایه ایمیج (image index) باشد، علاوه بر خود فهرست یا نمایه، تمام ایمیج‌های موجود در آن نیز ارسال می‌شوند.

--authfile path

مسیر فایل احراز هویت. پیش‌فرض ${XDG_RUNTIME_DIR}/containers/auth.json است. برای اطلاعات بیشتر به containers-auth.json(5) مراجعه کنید. این فایل با استفاده از buildah login ایجاد می‌شود.

اگر وضعیت احراز هویت در آنجا یافت نشود، فایل $HOME/.docker/config.json که با docker login تنظیم شده بررسی می‌گردد.

نکته: می‌توانید با تنظیم متغیر محیطی REGISTRY_AUTH_FILE مسیر پیش‌فرض فایل احراز هویت را بازنویسی کنید: export REGISTRY_AUTH_FILE=path

--cert-dir path

استفاده از گواهی‌های موجود در path (*.crt, *.cert, *.key) برای اتصال به رجیستری. دایرکتوری پیش‌فرض گواهی‌ها /etc/containers/certs.d است.

--compression-format format

فرمت فشرده‌سازی مورد استفاده را مشخص می‌کند. مقادیر پشتیبانی‌شده عبارتند از: gzip، zstd و zstd:chunked. گزینه zstd:chunked با رمزگذاری ایمیج‌ها ناسازگار است و در این حالت همراه با یک پیام هشدار، همانند zstd با آن رفتار خواهد شد. اگر مشخص نشود، فرمت از تنظیم compression_format در فایل containers.conf خوانده می‌شود.

--compression-level level

سطح فشرده‌سازی مورد استفاده را مشخص می‌کند. این مقدار وابسته به الگوریتم فشرده‌سازی استفاده‌شده است؛ برای مثال برای zstd مقادیر مجاز در بازه ۱ تا ۲۰ (شامل هر دو) و برای gzip در بازه ۱ تا ۹ (شامل هر دو) است. اگر مشخص نشود، سطح از تنظیم compression_level در فایل containers.conf خوانده می‌شود.

--creds creds

نام کاربری و گذرواژه [username[:password]] برای احراز هویت در رجیستری (در صورت نیاز). اگر یک یا هر دو مقدار ارائه نشوند، اعلان خط فرمان ظاهر خواهد شد و می‌توان مقدار را وارد کرد. گذرواژه بدون بازتاب کاراکترها وارد می‌شود.

--digestfile Digestfile

پس از کپی ایمیج، شناسه یکتای هش (digest) ایمیج حاصل را در فایل مشخص‌شده ذخیره می‌کند.

--disable-compression, -D

عدم فشرده‌سازی کپی لایه‌های سیستم فایل که قرار است ارسال شوند.

--encrypt-layer layer(s)

لایه‌(ها) برای رمزگذاری: اندیس لایه‌ها با شروع از صفر و با پشتیبانی از اندیس‌گذاری منفی (به عنوان مثال 0 اولین لایه و 1- آخرین لایه است). در صورت عدم تعیین، اگر سوییچ encryption-key مشخص شده باشد، تمامی لایه‌ها رمزگذاری خواهند شد.

--encryption-key key

فرمت [protocol:keyfile] پروتکل رمزگذاری را مشخص می‌کند که می‌تواند JWE (RFC7516)، PGP (RFC4880) و PKCS7 (RFC2315) باشد و همچنین کلیدهای مورد نیاز برای رمزگذاری ایمیج را تعیین می‌کند. برای مثال: jwe:/path/to/key.pem یا pgp:admin@example.com یا pkcs7:/path/to/x509-file.

--force-compression

در صورت تنظیم، ارسال ایمیج از الگوریتم فشرده‌سازی مشخص‌شده استفاده می‌کند حتی اگر مقصد در حال حاضر شامل نسخه‌ای با فشرده‌سازی متفاوت باشد. اگر --compression-format به صورت صریح در خط فرمان مشخص شده باشد یا compression_format در containers.conf تنظیم شده باشد، مقدار پیش‌فرض true است، در غیر این صورت false خواهد بود.

--format, -f

نوع مانیفست (oci، v2s2 یا v2s1) برای استفاده هنگام ارسال ایمیج (پیش‌فرض، نوع مانیفست ایمیج مبدا است، به همراه گزینه‌های پشتیبان).

--quiet, -q

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

--remove-signatures

هنگام ارسال ایمیج‌ها، امضاها کپی نشوند.

--retry attempts

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

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

--retry-delay duration

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

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

--rm

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

--sign-by fingerprint

امضای ایمیج ارسالی با استفاده از کلید GPG متناظر با اثر انگشت (fingerprint) مشخص‌شده.

--tls-verify bool-value

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

این مثال ایمیج مشخص‌شده توسط imageID را با فرمت docker در یک دایرکتوری محلی ارسال (push) می‌کند.

# buildah push imageID dir:/path/to/image

این مثال ایمیج مشخص‌شده توسط imageID را با فرمت oci در یک دایرکتوری محلی ارسال می‌کند.

# buildah push imageID oci:/path/to/layout:image:tag

این مثال ایمیج مشخص‌شده توسط imageID را با فرمت oci به یک بایگانی تار (tar) ارسال می‌کند.

# buildah push imageID oci-archive:/path/to/archive:image:tag

این مثال ایمیج مشخص‌شده توسط imageID را به یک رجیستری کانتینر با نام registry.example.com ارسال می‌کند.

# buildah push imageID docker://registry.example.com/repository:tag

این مثال ایمیج مشخص‌شده توسط imageID را به یک رجیستری کانتینر به نام registry.example.com ارسال کرده و هش (digest) را در فایل تعیین‌شده digestfile ذخیره می‌کند.

# buildah push --digestfile=/tmp/mydigest imageID docker://registry.example.com/repository:tag

این مثال مانند docker push عمل می‌کند، با این فرض که registry.example.com/my_image یک ایمیج محلی است.

# buildah push registry.example.com/my_image

این مثال ایمیج مشخص‌شده توسط imageID را به همراه اطلاعات احراز هویت از مسیر /tmp/auths/myauths.json به یک رجیستری کانتینر خصوصی به نام registry.example.com ارسال می‌کند.

# buildah push --authfile /tmp/auths/myauths.json imageID docker://registry.example.com/repository:tag

این مثال ایمیج مشخص‌شده توسط imageID را ارسال کرده و در فضای ذخیره‌سازی محلی کانتینر داکر قرار می‌دهد.

# buildah push imageID docker-daemon:image:tag

این مثال ایمیج مشخص‌شده توسط imageID را به رجیستری روی localhost ارسال کرده و همزمان اعتبارسنجی TLS را غیرفعال می‌سازد.
# buildah push --tls-verify=false imageID localhost:5000/my-imageID

این مثال ایمیج مشخص‌شده توسط imageID را با استفاده از اطلاعات هویتی (credentials) و گواهی‌ها برای احراز هویت، به رجیستری روی localhost ارسال می‌کند.
# buildah push --cert-dir ~/auth --tls-verify=true --creds=username:password imageID localhost:5000/my-imageID

BUILD_REGISTRY_SOURCES

متغیر BUILD_REGISTRY_SOURCES در صورت تنظیم، به عنوان یک شیء JSON در نظر گرفته می‌شود که شامل فهرست‌هایی از نام‌های رجیستری تحت کلیدهای insecureRegistries، blockedRegistries و allowedRegistries است.

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

TMPDIR

متغیر محیطی TMPDIR به کاربر امکان می‌دهد مشخص کند که فایل‌های موقت هنگام دریافت (pull) و ارسال (push) ایمیج‌ها در کجا ذخیره شوند. مقدار پیش‌فرض '/var/tmp' است.

registries.conf (/etc/containers/registries.conf)

فایل registries.conf فایل پیکربندی است که مشخص می‌کند هنگام کامل کردن نام ایمیج‌هایی که فاقد بخش رجیستری یا دامنه هستند، به کدام رجیستری‌های کانتینر مراجعه شود.

policy.json (/etc/containers/policy.json)

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

buildah(1), buildah-login(1), containers-policy.json(5), docker-login(1), containers-registries.conf(5), buildah-manifest(1), containers-transports(5), containers-auth.json(5)

June 2017 buildah