.nh .TH "apptainer" "1" "Jul 2026" "Auto generated by spf13/cobra" "" .SH "نام (NAME)" apptainer-build \- ساخت یک ایمیج Apptainer .SH "خلاصه دستور (SYNOPSIS)" \fBapptainer build [local options...] \fP .SH "توضیحات (DESCRIPTION)" مسیر ایمیج (IMAGE PATH): .PP هنگامی که Apptainer کانتینر را می‌سازد، خروجی می‌تواند یکی از چند قالب زیر باشد: .EX default: The compressed Apptainer read only image format (default) sandbox: This is a read-write container within a directory structure .EE .PP نکته: یک گردش کاری معمول استفاده از حالت «sandbox» برای توسعه کانتینر، و سپس ساخت آن به عنوان یک ایمیج پیش‌فرض Apptainer برای استفاده در محیط عملیاتی است. قالب پیش‌فرض تغییرناپذیر است. .PP مشخصات ساخت (BUILD SPEC): .PP هدف مشخصات ساخت یک پرونده تعریف (def)، ایمیج محلی، یا URI است که می‌تواند برای ایجاد یک کانتینر Apptainer استفاده شود. چندین قالب هدف محلی مختلف وجود دارد: .EX def file : This is a recipe for building a container (examples below) buildkit: A build context directory, containing a Dockerfile to build directory: A directory structure containing a (ch)root file system image: A local image on your machine (will convert to sif if it is legacy format) .EE .PP هدف‌ها همچنین می‌توانند از راه دور بوده و با یک URI در قالب‌های زیر مشخص شوند: .EX library:// an image library (no default) docker:// a Docker/OCI registry (default Docker Hub) shub:// an Apptainer registry (default Singularity Hub) oras:// an OCI registry that holds SIF files using ORAS ipfs:// an IPFS cluster, using a HTTP gateway .EE .PP پرونده‌های موقت (Temporary files): .PP مکان استفاده‌شده برای دایرکتوری‌های موقت به‌طور پیش‌فرض ‎/tmp است، اما می‌تواند توسط متغیر محیطی TMPDIR بازنویسی شود، و خود آن نیز می‌تواند توسط متغیر محیطی APPTAINER_TMPDIR بازنویسی شود. دایرکتوری موقت مورد استفاده در طول ساخت باید روی سیستم‌فایلی قرار داشته باشد که فضای کافی برای نگهداری کل ایمیج کانتینر به صورت غیرفشرده، شامل تمامی پرونده‌های موقتی که در طول ساخت ایجاد و سپس حذف می‌شوند را داشته باشد. ممکن است هنگام ساخت یک کانتینر بزرگ روی سیستمی که سیستم‌فایل ‎/tmp کوچکی دارد، نیاز به تنظیم APPTAINER_TMPDIR یا TMPDIR داشته باشید. .SH "گزینه‌ها (OPTIONS)" \fB--arch\fP="amd64" معماری مد نظر برای ساخت .PP \fB--arch-variant\fP="" گونه معماری مد نظر برای ساخت .PP \fB--authfile\fP="" پرونده احراز هویت به سبک Docker جهت استفاده برای نوشتن/خواندن اعتبارنامه‌های رجیستری OCI .PP \fB-B\fP, \fB--bind\fP=[] مشخصات مسیر اتصال سفارشی کاربر. مشخصات دارای قالب src[:dest[:opts]] است، که در آن src و dest مسیرهای خارج و داخل هستند. اگر dest تعیین نشود، برابر با src در نظر گرفته می‌شود. گزینه‌های سوار کردن ('opts') می‌توانند به صورت 'ro' (فقط‌خواندنی) یا 'rw' (خواندنی/نوشتنی، که پیش‌فرض است) تعیین شوند. چندین مسیر اتصال را می‌توان با یک فهرست جدا شده با کاما ارائه کرد. .PP \fB--build-arg\fP=[] تعریف variable=value برای جایگزینی ورودی‌های {{ variable }} در پرونده تعریف ساخت .PP \fB--build-arg-file\fP="" مشخص کردن یک پرونده حاوی خطوط variable=value برای جایگزینی '{{ variable }}' با مقدار مربوطه در پرونده‌های تعریف ساخت .PP \fB--buildkit-host\fP="" مشخص کردن یک میزبان دیمن سفارشی BuildKit .PP \fB--data\fP[=false] ساخت ایمیج با پارتیشن داده به جای پارتیشن سیستم .PP \fB--disable-cache\fP[=false] عدم استفاده از حافظه موقت (cache) یا عدم ایجاد آن .PP \fB--docker-host\fP="" مشخص کردن یک میزبان دیمن سفارشی Docker .PP \fB--docker-login\fP[=false] ورود تعاملی به یک مخزن Docker .PP \fB-e\fP, \fB--encrypt\fP[=false] ساخت ایمیج با یک سیستم‌فایل رمزگذاری‌شده .PP \fB-f\fP, \fB--fakeroot\fP[=false] ساخت با ظاهر اجرای کاربر ریشه (پیش‌فرض هنگام ساخت از یک پرونده تعریف به صورت غیراختصاصی) .PP \fB--fix-perms\fP[=false] اطمینان از وجود دسترسی‌های rwX برای مالک روی تمام محتویات کانتینر برای منابع oci/docker .PP \fB-F\fP, \fB--force\fP[=false] بازنویسی پرونده ایمیج در صورت وجود .PP \fB-h\fP, \fB--help\fP[=false] راهنمای دستور ساخت (build) .PP \fB--json\fP[=false] تفسیر تعریف ساخت به صورت JSON .PP \fB--library\fP="" نشانی اینترنتی (URL) کتابخانه کانتینر .PP \fB--mksquashfs-args\fP="" آرگومان‌های اضافی برای ارسال به mksquashfs هنگام ایجاد پرونده‌های SIF .PP \fB--mount\fP=[] مشخصات سوار کردن، به عنوان مثال 'type=bind,source=/opt,destination=/hostopt'. .PP \fB--no-cleanup\fP[=false] عدم پاک‌سازی بسته پس از شکست در ساخت؛ می‌تواند برای اشکال‌زدایی مفید باشد .PP \fB--no-https\fP[=false] استفاده از http به جای https برای URIهای docker:// ، oras:// و library:///... .PP \fB-T\fP, \fB--notest\fP[=false] ساخت بدون اجرای آزمون‌ها در بخش %test .PP \fB--nv\fP[=false] تزریق کتابخانه‌های Nvidia میزبان در طول ساخت برای بخش‌های post و test .PP \fB--nvccli\fP[=false] استفاده از nvidia-container-cli برای راه‌اندازی پردازنده گرافیکی GPU (آزمایشی) .PP \fB--passphrase\fP[=false] درخواست عبارت عبور برای رمزگذاری .PP \fB--pem-path\fP="" وارد کردن یک مسیر به کلید RSA با قالب PEM برای یک کانتینر رمزگذاری‌شده .PP \fB--reproducible\fP[=false] ایجاد یک ساخت تکرارپذیر با استفاده از تاریخ ایجاد ایمیج منبع .PP \fB--rocm\fP[=false] تزریق کتابخانه‌های Rocm میزبان در طول ساخت برای بخش‌های post و test .PP \fB-s\fP, \fB--sandbox\fP[=false] ساخت ایمیج در قالب sandbox (ساختار دایرکتوری chroot) .PP \fB--section\fP=[all] تنها اجرای بخش(های) مشخص‌شده از deffile (شامل setup, post, files, environment, test, labels, none) .PP \fB-u\fP, \fB--update\fP[=false] اجرای تعریف بر روی کانتینر موجود (سرآیند نادیده گرفته می‌شود) .PP \fB--userns\fP[=false] ساخت بدون استفاده از setuid حتی در صورت در دسترس بودن .PP \fB--warn-unused-build-args\fP[=false] نمایش هشدار به جای پیام خطای مهلک هنگام عدم تطابق دقیق آرگومان‌های ساخت .PP \fB--writable-tmpfs\fP[=false] در طول بخش %test، سیستم‌فایل را به صورت خواندنی-نوشتنی با داده‌های ناپایدار در دسترس قرار می‌دهد (تنها با پشتیبانی از overlay) .SH "مثال (EXAMPLE)" .EX DEF FILE BASE OS: Library: Bootstrap: library From: debian:9 Docker: Bootstrap: docker From: tensorflow/tensorflow:latest IncludeCmd: yes # Use the CMD as runscript instead of ENTRYPOINT Singularity Hub: Bootstrap: shub From: singularityhub/centos YUM/RHEL: Bootstrap: yum OSVersion: 7 MirrorURL: http://mirror.centos.org/centos-%{OSVERSION}/%{OSVERSION}/os/x86_64 Include: yum SUSE: Bootstrap: zypper # on SLE system registration of build host is used Include: zypper openSUSE: Bootstrap: zypper MirrorURL: http://download.opensuse.org/distribution/openSUSE-stable/repo/oss Include: zypper Debian/Ubuntu: Bootstrap: debootstrap OSVersion: trusty MirrorURL: http://us.archive.ubuntu.com/ubuntu Local Image: Bootstrap: localimage From: /home/dave/starter.img Scratch: Bootstrap: scratch # Populate the container with a minimal rootfs in %setup DEFFILE SECTIONS: The following sections are presented in the order of processing, with the exception that labels and environment can also be manipulated in %post. %pre echo "This is a scriptlet that will be executed on the host, as root before" echo "the container has been bootstrapped. This section is not commonly used." %setup echo "This is a scriptlet that will be executed on the host, as root, after" echo "the container has been bootstrapped. To install things into the container" echo "reference the file system location with $APPTAINER_ROOTFS." %files /path/on/host/file.txt /path/on/container/file.txt relative_file.txt /path/on/container/relative_file.txt %post echo "This scriptlet section will be executed from within the container after" echo "the bootstrap/base has been created and setup." %environment LUKE=goodguy VADER=badguy HAN=someguy export HAN VADER LUKE %test echo "Define any test commands that should be executed after container has been" echo "built. This scriptlet will be executed from within the running container" echo "as the root user. Pay attention to the exit/return value of this scriptlet" echo "as any non-zero exit code will be assumed as failure." exit 0 %runscript echo "Define actions for the container to be executed with the run command or" echo "when container is executed." %startscript echo "Define actions for container to perform when started as an instance." %labels HELLO MOTO KEY VALUE %help This is a text file to be displayed with the run-help command. COMMANDS: Build a sif file from an Apptainer recipe file: $ apptainer build /tmp/debian0.sif /path/to/debian.def Build a sif image from the Library: $ apptainer build /tmp/debian1.sif library://debian:latest Build a base sandbox from DockerHub, make changes to it, then build sif $ apptainer build --sandbox /tmp/debian docker://debian:latest $ apptainer exec --writable /tmp/debian apt-get install python $ apptainer build /tmp/debian2.sif /tmp/debian .EE .SH "همچنین ببینید (SEE ALSO)" \fBapptainer(1)\fP .SH "تاریخچه (HISTORY)" 30-Jul-2026 تولید خودکار توسط spf13/cobra