ΠΠΎΡΠ° Π΅ ΡΠ±Π°Π²ΠΈΠ½Π°ΡΠ° Π½Π° ΡΠ°Π·Π΄Π²ΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ Π½Π° ΡΠ°Π±ΠΎΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π²ΠΎ ΠΏΠΎΡΠ΅Π±Π½ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π·Π° Π°Π»Π°ΡΠΈ? ΠΡΠΎΠ±Π΅Π½ΠΎ, ΠΎΠ²ΠΈΠ΅ Π°Π»Π°ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΡΠ½Π°Ρ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π°Ρ Π·Π° Π΄Π° ΡΠ΅ Π·Π°ΡΡΠΈΡΠ°Ρ Π΅Π΄Π½ΠΈ ΡΠΎ Π΄ΡΡΠ³ΠΈ.

ΠΠ½ΠΎΠ³Ρ Π»ΡΡΠ΅ ΡΠ΅ ΠΏΡΠΈΠ²Π»Π΅ΡΠ΅Π½ΠΈ ΠΎΠ΄ ΠΈΠ΄Π΅ΡΠ°ΡΠ° Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΠ·ΠΈΡΠ°Π½ΠΈ OCI ΡΠ»ΠΈΠΊΠΈ Π²Π½Π°ΡΡΠ΅ ΠΈΠ»ΠΈ ΡΠ»ΠΈΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ. ΠΠ° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ CI/CD ΡΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠΎΠ±ΠΈΡΠ° ΡΠ»ΠΈΠΊΠΈ, Π° ΠΏΠΎΡΠΎΠ° Π½Π΅ΡΡΠΎ ΡΠ»ΠΈΡΠ½ΠΎ /Kubernetes Π±ΠΈ Π±ΠΈΠ» Π΄ΠΎΡΡΠ° ΠΊΠΎΡΠΈΡΠ΅Π½ Π²ΠΎ ΠΎΠ΄Π½ΠΎΡ Π½Π° Π±Π°Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΎΠ²Π°ΡΠΎΡ Π·Π° Π²ΡΠ΅ΠΌΠ΅ Π½Π° Π³ΡΠ°Π΄Π±ΠΈΡΠ΅. ΠΠΎ Π½Π΅ΠΎΠ΄Π°ΠΌΠ½Π°, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π»ΡΡΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΈΠΌ Π΄Π°Π²Π°Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Π·Π° Docker ΠΈ ΠΈΠΌ Π΄ΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Π° Π΄Π° ΡΠ° ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Π·Π° ΠΈΠ·Π³ΡΠ°Π΄Π±Π° Π½Π° docker. Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³Ρ Π½Π΅ΡΠΈΠ³ΡΡΠ½ΠΎ, Π²ΡΡΡΠ½ΠΎΡΡ, ΡΠΎΠ° Π΅ ΡΡΡΠ΅ ΠΏΠΎΠ»ΠΎΡΠΎ ΠΎΠ΄ Π΄Π°Π²Π°ΡΠ΅ root ΠΈΠ»ΠΈ sudo Π±Π΅Π· Π»ΠΎΠ·ΠΈΠ½ΠΊΠ°.
ΠΠ°ΡΠΎΠ° Π»ΡΡΠ΅ΡΠΎ ΠΏΠΎΡΡΠΎΡΠ°Π½ΠΎ ΡΠ΅ ΠΎΠ±ΠΈΠ΄ΡΠ²Π°Π°Ρ Π΄Π° ΡΠ° Π²ΠΎΠ΄Π°Ρ ΠΠΈΠ»Π΄Π°Ρ
Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ°ΠΊΡΠ°ΡΠΊΠΎ, ΡΠΎΠ·Π΄Π°Π΄ΠΎΠ²ΠΌΠ΅ ΠΊΠ°ΠΊΠΎ, ΡΠΏΠΎΡΠ΅Π΄ Π½Π°ΡΠ΅ ΠΌΠΈΡΠ»Π΅ΡΠ΅, Π΅ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΎ Π΄Π° ΡΠ΅ ΠΏΡΡΡΠΈ Buildah Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π²Π΅Π½ΠΈ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π½Π° . ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΡΠ½Π΅ΠΌΠ΅...
ΠΏΡΠΈΠ»Π°Π³ΠΎΠ΄ΡΠ²Π°ΡΠ΅
ΠΠ²ΠΈΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΠ΄ Dockerfiles, ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π½Π°ΡΠ΄Π°Ρ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Buildah Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° .
ΠΠ²Π΄Π΅ ΡΠ΅ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ .
# stable/Dockerfile
#
# Build a Buildah container image from the latest
# stable version of Buildah on the Fedoras Updates System.
# https://bodhi.fedoraproject.org/updates/?search=buildah
# This image can be used to create a secured container
# that runs safely with privileges within the container.
#
FROM fedora:latest
# Don't include container-selinux and remove
# directories used by dnf that are just taking
# up space.
RUN yum -y install buildah fuse-overlayfs --exclude container-selinux; rm -rf /var/cache /var/log/dnf* /var/log/yum.*
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
ΠΠ°ΠΌΠ΅ΡΡΠΎ OverlayFS, ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Linux, ΡΠ° ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ° Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ , Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²ΠΎ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠ² OverlayFS ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ ΠΌΡ Π΄Π°Π΄Π΅ΡΠ΅ SYS_ADMIN Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° Linux. Π Π½ΠΈΠ΅ ΡΠ°ΠΊΠ°ΠΌΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ Π½Π°ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Buildah Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠ°Π²Π° Π·Π° root. ΠΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π°ΡΠΈ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΡΡΠ° Π±ΡΠ·ΠΎ ΠΈ ΠΈΠΌΠ° ΠΏΠΎΠ΄ΠΎΠ±ΡΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΠΎΠ΄ Π΄ΡΠ°ΡΠ²Π΅ΡΠΎΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ VFS. ΠΠΌΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΠΊΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Buildah ΡΡΠΎ ΠΊΠΎΡΠΈΡΡΠΈ Fuse, ΠΌΠΎΡΠ° Π΄Π° Π³ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈΡΠ΅ ΡΡΠ΅Π΄ΠΎΡ /dev/fuse.
podman run --device /dev/fuse quay.io/buildahctr ...
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
Π‘Π»Π΅Π΄Π½ΠΎ, ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. Π³ΠΎ ΠΏΠΎΠ΄Π΄ΡΠΆΡΠ²Π° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΡ Π·Π° ΠΏΠΎΠ²ΡΠ·ΡΠ²Π°ΡΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ΄Π°Π²Π½ΠΈΡΠΈ Π·Π° ΡΠ»ΠΈΠΊΠΈ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ°ΡΠ΅ ΠΎΠ±Π»Π°ΡΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΡΠΎ ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ Π½Π° Π΅Π΄Π½Π° ΠΌΠ°ΡΠΈΠ½Π°, Π° ΠΏΠΎΡΠΎΠ° Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ NFS Π·Π° Π΄Π° ΡΠ° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΎΠ²Π°Π° ΠΌΠ΅ΠΌΠΎΡΠΈΡΠ° Π½Π° Π΄ΡΡΠ³Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΈ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π½Π΅Π° Π±Π΅Π· ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΠΏΡΠ΅ΠΊΡ ΠΏΠΎΠ²Π»Π΅ΠΊΡΠ²Π°ΡΠ΅. ΠΠΈ ΡΡΠ΅Π±Π° ΠΎΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΠΌΠ΅ Π΄Π° ΠΏΠΎΠ²ΡΠ·Π΅ΠΌΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΊΠ°ΠΊΠΎ Π²ΠΎΠ»ΡΠΌΠ΅Π½ ΠΈ Π΄Π° Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Π²Π½Π°ΡΡΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ.
# Set up environment variables to note that this is
# not starting with user namespace and default to
# isolate the filesystem with chroot.
ENV _BUILDAH_STARTED_IN_USERNS="" BUILDAH_ISOLATION=chroot
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°ΡΠ° Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π°ΡΠ° BUILDAH_ISOLATION, ΠΌΡ ΠΊΠ°ΠΆΡΠ²Π°ΠΌΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΡΠΎ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° chroot ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΎ. ΠΠ²Π΄Π΅ Π½Π΅ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½Π° ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ°, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π²Π΅ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ. ΠΠ° Π΄Π° ΠΌΠΎΠΆΠ΅ Buildah Π΄Π° ΡΠΎΠ·Π΄Π°Π΄Π΅ ΡΠ²ΠΎΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΎΠ΄Π²ΠΎΠ΅Π½ΠΈ ΡΠΎ ΠΈΠΌΠ΅Π½ΡΠΊΠΈ ΠΏΡΠΎΡΡΠΎΡ, ΠΏΠΎΡΡΠ΅Π±Π½Π° Π΅ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ° SYS_ADMIN, ΡΡΠΎ Π±Π°ΡΠ° ΡΠ΅Π»Π°ΠΊΡΠΈΡΠ°ΡΠ΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° SELinux ΠΈ SECCOMP Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ, ΡΡΠΎ Π΅ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ Π½Π° Π½Π°ΡΠ°ΡΠ° ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ°ΡΠ΅ Π΄Π° ΡΠ΅ Π³ΡΠ°Π΄ΠΈ ΠΎΠ΄ Π±Π΅Π·Π±Π΅Π΄Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ.
ΠΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π½Π° Buildah Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ
ΠΠΈΡΠ°Π³ΡΠ°ΠΌΠΎΡ Π·Π° ΡΠ»ΠΈΠΊΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah, Π΄ΠΈΡΠΊΡΡΠΈΡΠ°Π½ ΠΏΠΎΠ³ΠΎΡΠ΅, Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎ Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅ Π·Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
ΠΡΠ·ΠΈΠ½Π° Π½Π°ΡΠΏΡΠΎΡΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ
ΠΠΎΠΌΠΏΡΡΡΠ΅ΡΡΠΊΠ°ΡΠ° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π΅ ΡΠ΅ΠΊΠΎΠ³Π°Ρ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ ΠΏΠΎΠΌΠ΅ΡΡ Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° ΠΏΡΠΎΡΠ΅ΡΠΎΡ ΠΈ ΡΠΎΠ° ΠΊΠΎΠ»ΠΊΡ Π·Π°ΡΡΠΈΡΠ° Π΅ ΠΎΠ±Π²ΠΈΡΠΊΠ°Π½Π° ΠΎΠΊΠΎΠ»Ρ Π½Π΅Π³ΠΎ. ΠΠ²Π°Π° ΠΈΠ·ΡΠ°Π²Π° Π΅ Π²ΠΈΡΡΠΈΠ½ΠΈΡΠ° ΠΈ ΠΏΡΠΈ ΡΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, ΠΏΠ° ΠΏΠΎΠ΄ΠΎΠ»Ρ ΡΠ΅ Π³ΠΈ ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΎΠΏΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°ΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡ.
Π‘Π»ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π΄ΠΈΡΠΊΡΡΠΈΡΠ°Π½Π° ΠΏΠΎΠ³ΠΎΡΠ΅ ΡΠ΅ Π³ΠΎ Π·Π°Π΄ΡΠΆΠΈ ΡΠ²ΠΎΠ΅ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΎ /var/lib/containers. ΠΠ°ΡΠΎΠ°, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π²ΠΎ ΠΎΠ²Π°Π° ΠΏΠ°ΠΏΠΊΠ°, Π° Π½Π°ΡΠΈΠ½ΠΎΡ Π½Π° ΠΊΠΎΡ Π³ΠΎ ΠΏΡΠ°Π²ΠΈΠΌΠ΅ ΡΠΎΠ° ΠΌΠ½ΠΎΠ³Ρ ΡΠ΅ Π²Π»ΠΈΡΠ°Π΅ Π½Π° Π±ΡΠ·ΠΈΠ½Π°ΡΠ° Π½Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
ΠΡΠ΄Π΅ Π΄Π° ΡΠ°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΡΡΠΈ ΠΎΠΏΡΠΈΠΈ.
ΠΠΏΡΠΈΡΠ° 1. ΠΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ, ΡΠΎΠ³Π°Ρ Π·Π° ΡΠ΅ΠΊΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΡΠ΅ΠΈΡΠ°ΡΠ΅ ΡΠΎΠΏΡΡΠ²Π΅Π½Π° ΠΏΠ°ΠΏΠΊΠ° Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ/ΡΠ»ΠΈΠΊΠ° ΠΈ Π΄Π° ΡΠ° ΠΏΠΎΠ²ΡΠ·Π΅ΡΠ΅ ΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ ΠΏΡΠ΅ΠΊΡ ΠΌΠΎΠ½ΡΠ°ΠΆΠ° Π·Π° Π²ΠΎΠ»ΡΠΌΠ΅Π½. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΠΏΠΎΡΡΠ°Π²Π΅ΡΠ΅ Π³ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΠ°Π»Π½ΠΈΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌ Π²ΠΎ ΡΠ°ΠΌΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, Π²ΠΎ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° /build:
# mkdir /var/lib/containers1
# podman run -v ./build:/build:z -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image1 bud /build
# podman run -v /var/lib/containers1:/var/lib/containers:Z quay.io/buildah/stable buildah push image1 registry.company.com/myuser
# rm -rf /var/lib/containers1
ΠΠ΅Π·Π±Π΅Π΄Π½ΠΎΡΡ. Buildah ΡΡΠΎ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ ΡΠ°ΠΊΠΎΠ² ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΈΠΌΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ: Π½Π΅ ΠΌΡ ΡΠ΅ Π΄Π°Π΄Π΅Π½ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π·Π° root ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΈ ΡΠΈΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ° Π½Π° SECOMP ΠΈ SELinux Π²Π°ΠΆΠ°Ρ Π·Π° Π½Π΅Π³ΠΎ. Π’Π°ΠΊΠ²ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ°Π±ΠΎΡΠΈ Π΄ΡΡΠΈ ΠΈ ΡΠΎ ΠΈΠ·ΠΎΠ»Π°ΡΠΈΡΠ° Π½Π° User Namespace ΡΠΎ Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ Π½Π° ΠΎΠΏΡΠΈΡΠ° ΠΊΠ°ΠΊΠΎ βuidmap 0: 100000:10000.
ΠΠ·Π²Π΅Π΄Π±Π°. ΠΠΎ, ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅ ΠΎΠ²Π΄Π΅ ΡΠ΅ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΈ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΡΠ΅ ΠΊΠΎΠΏΠΈΡΠ°Π°Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΡΠ΅ΠΊΠΎΡ ΠΏΠ°Ρ, Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π²ΠΎΠΎΠΏΡΡΠΎ Π½Π΅ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ°. ΠΠΎΠ³Π° ΡΠ° Π·Π°Π²ΡΡΡΠ²Π° ΡΠ²ΠΎΡΠ°ΡΠ° ΡΠ°Π±ΠΎΡΠ°, ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah ΠΌΠΎΡΠ° Π΄Π° ΡΠ° ΠΈΡΠΏΡΠ°ΡΠΈ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π²ΠΎ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ ΠΈ Π΄Π° ΡΠ° ΡΠ½ΠΈΡΡΠΈ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ. Π‘Π»Π΅Π΄Π½ΠΈΠΎΡ ΠΏΠ°Ρ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ, ΡΠ΅ ΡΡΠ΅Π±Π° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ ΠΎΠ΄ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π΄ΠΎΡΠΎΠ³Π°Ρ Π½Π΅ΠΌΠ° Π΄Π° ΠΎΡΡΠ°Π½Π΅ Π½ΠΈΡΡΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ.
ΠΠΏΡΠΈΡΠ° 2. ΠΠΊΠΎ Π²ΠΈ ΡΡΠ΅Π±Π° ΠΈΠ·Π²Π΅Π΄Π±Π° Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Docker, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ/ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ΡΠΎ Π΄ΠΎΠΌΠ°ΡΠΈΠ½ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ.
# podman run -v ./build:/build:z -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah -t image2 bud /build
# podman run -v /var/lib/containers:/var/lib/containers --security-opt label:disabled quay.io/buildah/stable buildah push image2 registry.company.com/myuser
ΠΠ΅Π·Π±Π΅Π΄Π½ΠΎΡΡ. ΠΠ²Π° Π΅ Π½Π°ΡΠΌΠ°Π»ΠΊΡ Π±Π΅Π·Π±Π΅Π΄Π½ΠΈΠΎΡ Π½Π°ΡΠΈΠ½ Π·Π° Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΌΡ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π΄Π° Π³ΠΎ ΠΌΠΎΠ΄ΠΈΡΠΈΡΠΈΡΠ° ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΈ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°Ρ ΡΠ°Π½ΠΈ Podman ΠΈΠ»ΠΈ CRI-O ΡΠΎ Π·Π»ΠΎΠ½Π°ΠΌΠ΅ΡΠ½Π° ΡΠ»ΠΈΠΊΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΡΠ΅ ΡΡΠ΅Π±Π° Π΄Π° Π³ΠΎ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈΡΠ΅ ΡΠ°Π·Π΄Π²ΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° SELinux Π·Π° ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah Π΄Π° ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΠΌΡΠ½ΠΈΡΠΈΡΠ°Π°Ρ ΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ. ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° ΠΎΠ²Π°Π° ΠΎΠΏΡΠΈΡΠ° Π΅ ΡΠ΅ΠΏΠ°ΠΊ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ° ΠΎΠ΄ ΠΏΡΠΈΠΊΠ»ΡΡΠΎΠΊΠΎΡ Docker Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π΅ Π·Π°ΠΊΠ»ΡΡΠ΅Π½ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΏΡΠ΅ΠΎΡΡΠ°Π½Π°ΡΠΈΡΠ΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ Π΄Π° ΡΠ°Π±ΠΎΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ.
ΠΠ·Π²Π΅Π΄Π±Π°. ΠΠ²Π΄Π΅ Π΅ ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌ, Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π΅ ΡΠ΅Π»ΠΎΡΠ½ΠΎ ΠΈΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΎ. ΠΠΊΠΎ Podman ΠΈΠ»ΠΈ CRI-O Π²Π΅ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ°Π»Π΅ ΠΏΠΎΡΡΠ΅Π±Π½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ, ΡΠΎΠ³Π°Ρ ΠΏΡΠΎΡΠ΅ΡΠΎΡ Buildah Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π½Π΅ΠΌΠ° Π΄Π° ΠΌΠΎΡΠ° ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ Π΄Π° ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ°, Π° ΡΠ»Π΅Π΄Π½ΠΈΡΠ΅ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° ΠΎΠ²Π°Π° ΡΠ»ΠΈΠΊΠ° ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° ΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΎ Π·Π΅ΠΌΠ°Ρ ΠΎΠ½Π° ΡΡΠΎ ΠΈΠΌ ΡΡΠ΅Π±Π° ΠΎΠ΄ ΠΊΠ΅ΡΠΎΡ .
ΠΠΏΡΠΈΡΠ° 3. Π‘ΡΡΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΎΠ²ΠΎΡ ΠΌΠ΅ΡΠΎΠ΄ Π΅ Π΄Π° ΡΠ΅ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ°Π°Ρ Π½Π΅ΠΊΠΎΠ»ΠΊΡ ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΏΡΠΎΠ΅ΠΊΡ ΡΠΎ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠ° ΠΏΠ°ΠΏΠΊΠ° Π·Π° ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
# mkdir /var/lib/project3
# podman run --security-opt label_level=s0:C100, C200 -v ./build:/build:z
-v /var/lib/project3:/var/lib/containers:Z quay.io/buildah/stable buildah -t image3 bud /build
# podman run --security-opt label_level=s0:C100, C200
-v /var/lib/project3:/var/lib/containers quay.io/buildah/stable buildah push image3 registry.company.com/myuser
ΠΠΎ ΠΎΠ²ΠΎΡ ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π΅ ΡΠ° Π±ΡΠΈΡΠ΅ΠΌΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° (/var/lib/project3) ΠΏΠΎΠΌΠ΅ΡΡ ΡΡΠ°ΠΏΠΊΠΈΡΠ΅, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠΈΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΈ Π³ΡΠ°Π΄Π±ΠΈ Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ ΠΈΠΌΠ°Π°Ρ ΠΊΠΎΡΠΈΡΡ ΠΎΠ΄ ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ΡΠΎ.
ΠΠ΅Π·Π±Π΅Π΄Π½ΠΎΡΡ. ΠΠ΅ΡΡΠΎ ΠΏΠΎΠΌΠ΅ΡΡ ΠΎΠΏΡΠΈΠΈΡΠ΅ 1 ΠΈ 2. ΠΠ΄ Π΅Π΄Π½Π° ΡΡΡΠ°Π½Π°, ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ Π½Π΅ΠΌΠ°Π°Ρ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΡΠΎΠ΄ΡΠΆΠΈΠ½Π°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ ΠΈ, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ, Π½Π΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π²Π½Π΅ΡΠ°Ρ Π½Π΅ΡΡΠΎ Π»ΠΎΡΠΎ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ Π½Π° ΡΠ»ΠΈΠΊΠΈ Podman/CRI-O. ΠΠ΄ Π΄ΡΡΠ³Π° ΡΡΡΠ°Π½Π°, ΠΊΠ°ΠΊΠΎ Π΄Π΅Π» ΠΎΠ΄ Π½Π΅Π³ΠΎΠ²ΠΈΠΎΡ Π΄ΠΈΠ·Π°ΡΠ½, ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΌΠ΅ΡΠ° ΡΠΎ ΡΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° Π΄ΡΡΠ³ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ.
ΠΠ·Π²Π΅Π΄Π±Π°. ΠΠ²Π΄Π΅ Π΅ ΠΏΠΎΠ»ΠΎΡΠΎ ΠΎΡΠΊΠΎΠ»ΠΊΡ ΠΊΠΎΠ³Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½ ΠΊΠ΅Ρ Π½Π° Π½ΠΈΠ²ΠΎ Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½, Π±ΠΈΠ΄Π΅ΡΡΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ Π²Π΅ΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Podman/CRI-O. ΠΠ΅ΡΡΡΠΎΠ°, ΡΡΠΎΠΌ Buildah ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ°ΡΠ°, ΡΠ»ΠΈΠΊΠ°ΡΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΡΠΈΡΠ΅ Π½Π°ΡΠ΅Π΄Π½ΠΈ ΠΈΠ·Π΄Π°Π½ΠΈΡΠ° Π²ΠΎ ΡΠ°ΠΌΠΊΠΈΡΠ΅ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΎΡ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅
Π£ ΠΠΌΠ° ΡΠΎΠ»ΠΊΡ ΠΊΡΠ» ΡΠ°Π±ΠΎΡΠ° ΠΊΠ°ΠΊΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ΄Π°Π²Π½ΠΈΡΠΈ (Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΡΠΎΠ΄Π°Π²Π½ΠΈΡΠΈ), Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΎ ΠΏΡΠΈ Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ ΠΈ Π³ΡΠ°Π΄Π΅ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, ΠΌΠΎΡΠΎΡΠΈΡΠ΅ Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΡΠΈΡΡΠ°Ρ Π½Π°Π΄Π²ΠΎΡΠ΅ΡΠ½ΠΈ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° Π·Π° ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏΡΠ²Π°ΡΠ΅ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. ΠΠΎ ΡΡΡΡΠΈΠ½Π°, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ Π΅Π΄Π΅Π½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ° ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅ Π²ΠΎ Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° storage.conf, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ Π³ΠΎ ΡΡΠ°ΡΡΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ, ΠΌΠΎΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ ΡΠ° Π±Π°ΡΠ° ΡΠ°ΠΊΠ°Π½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ° Π²ΠΎ Π½ΠΈΠ². ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠ΅ ΡΠ° ΠΏΡΠ΅Π·Π΅ΠΌΠ΅ ΡΠ»ΠΈΠΊΠ°ΡΠ° ΠΎΠ΄ ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ ΡΠ°ΠΌΠΎ Π°ΠΊΠΎ Π½Π΅ ΡΠ° Π½Π°ΡΠ΄Π΅ Π²ΠΎ Π½ΠΈΡΡ Π΅Π΄Π½Π° ΠΎΠ΄ ΠΎΠ²ΠΈΠ΅ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ°. ΠΠΎΡΠΎΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΈΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°ΠΏΠΈΡΠ΅...
ΠΠΊΠΎ Π΄ΠΎΡΠ΄Π΅ΡΠ΅ Π½Π°Π³ΠΎΡΠ΅ ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π²ΠΎ Dockerfile ΡΡΠΎ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠΈΠΌΠ΅ Π·Π° Π΄Π° ΡΠ° ΠΈΠ·Π³ΡΠ°Π΄ΠΈΠΌΠ΅ ΡΠ»ΠΈΠΊΠ°ΡΠ° quay.io/buildah/stable, ΠΈΠΌΠ° Π»ΠΈΠ½ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΠΎΠ²Π°:
# Adjust storage.conf to enable Fuse storage.
RUN sed -i -e 's|^#mount_program|mount_program|g' -e '/additionalimage.*/a "/var/lib/shared",' /etc/containers/storage.conf
RUN mkdir -p /var/lib/shared/overlay-images /var/lib/shared/overlay-layers; touch /var/lib/shared/overlay-images/images.lock; touch /var/lib/shared/overlay-layers/layers.lock
ΠΠΎ ΠΏΡΠ²Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ°, Π³ΠΎ ΠΌΠ΅Π½ΡΠ²Π°ΠΌΠ΅ /etc/containers/storage.conf Π²Π½Π°ΡΡΠ΅ Π²ΠΎ ΡΠ»ΠΈΠΊΠ°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ, ΠΊΠ°ΠΆΡΠ²Π°ΡΡΠΈ ΠΌΡ Π½Π° Π΄Π²ΠΈΠ³Π°ΡΠ΅Π»ΠΎΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π΄Π° ΠΊΠΎΡΠΈΡΡΠΈ βadditionalimagestoresβ Π²ΠΎ /var/lib/ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ°. Π Π²ΠΎ ΡΠ»Π΅Π΄Π½Π°ΡΠ° Π»ΠΈΠ½ΠΈΡΠ° ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠΏΠΎΠ΄Π΅Π»Π΅Π½Π° ΠΏΠ°ΠΏΠΊΠ° ΠΈ Π΄ΠΎΠ΄Π°Π²Π°ΠΌΠ΅ Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π·Π° Π·Π°ΠΊΠ»ΡΡΡΠ²Π°ΡΠ΅ Π·Π° Π΄Π° Π½Π΅ΠΌΠ° Π·Π»ΠΎΡΠΏΠΎΡΡΠ΅Π±Π° ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ/ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅. ΠΠΎ ΡΡΡΡΠΈΠ½Π°, Π½ΠΈΠ΅ Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΠΏΡΠ°Π·Π½Π° ΠΏΡΠΎΠ΄Π°Π²Π½ΠΈΡΠ° Π·Π° ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ.
ΠΠΊΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ/ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ ΠΏΠΎΠ²ΠΈΡΠΎΠΊΠΎ ΠΎΠ΄ ΠΎΠ²Π°Π° ΠΏΠ°ΠΏΠΊΠ°, Buildah ΡΠ΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ»ΠΈΠΊΠΈΡΠ΅.
Π‘Π΅Π³Π° Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈΠΌΠ΅ Π½Π° ΠΎΠΏΡΠΈΡΠ°ΡΠ° 2 ΡΡΠΎ Π±Π΅ΡΠ΅ Π΄ΠΈΡΠΊΡΡΠΈΡΠ°Π½Π° ΠΏΠΎΠ³ΠΎΡΠ΅, ΠΊΠΎΠ³Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠΈΡΠ° ΠΈ ΠΏΠΈΡΡΠ²Π° Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ/Π΄Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ° Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΈΡΠ΅ ΠΈ, ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎ, ΠΈΠΌΠ° ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈ ΠΏΠΎΡΠ°Π΄ΠΈ ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ Π½Π° Π½ΠΈΠ²ΠΎ Podman/CRI-O, Π½ΠΎ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π±ΠΈΠ΄Π΅ΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΈΡΡΠ²Π° Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π²ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅ΡΠΎ. Π‘Π΅Π³Π° Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΠΌΠ΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π΅Π½ ΠΏΡΠΎΡΡΠΎΡ ΠΎΠ²Π΄Π΅ ΠΈ Π΄Π° Π³ΠΎ ΠΈΠ·Π²Π»Π΅ΡΠ΅ΠΌΠ΅ Π½Π°ΡΠ΄ΠΎΠ±ΡΠΎΡΠΎ ΠΎΠ΄ Π΄Π²Π°ΡΠ° ΡΠ²Π΅ΡΠ°.
# mkdir /var/lib/containers4
# podman run -v ./build:/build:z -v /var/lib/containers/storage:/var/lib/shared:ro -v /var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable
buildah -t image4 bud /build
# podman run -v /var/lib/containers/storage:/var/lib/shared:ro
-v >/var/lib/containers4:/var/lib/containers:Z quay.io/buildah/stable buildah push image4 registry.company.com/myuser
# rm -rf /var/lib/continers4
ΠΠ°Π±Π΅Π»Π΅ΠΆΠ΅ΡΠ΅ Π΄Π΅ΠΊΠ° /var/lib/containers/storage Π½Π° Π΄ΠΎΠΌΠ°ΡΠΈΠ½ΠΎΡ Π΅ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ Π½Π° /var/lib/shared Π²Π½Π°ΡΡΠ΅ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Π²ΠΎ ΡΠ΅ΠΆΠΈΠΌ ΡΠ°ΠΌΠΎ Π·Π° ΡΠΈΡΠ°ΡΠ΅. ΠΠ°ΡΠΎΠ°, ΡΠ°Π±ΠΎΡΠ΅ΡΡΠΈ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ, Buildah ΠΌΠΎΠΆΠ΅ Π΄Π° Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΎ Π±ΠΈΠ»Π΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ΅Π½ΠΈ ΡΠΎ ΠΏΠΎΠΌΠΎΡ Π½Π° Podman/CRI-O (Π·Π΄ΡΠ°Π²ΠΎ, Π±ΡΠ·ΠΈΠ½Π°), Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΈΡΡΠ²Π° ΡΠ°ΠΌΠΎ Π²ΠΎ ΡΠΎΠΏΡΡΠ²Π΅Π½ΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ (Π·Π΄ΡΠ°Π²ΠΎ, Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ). ΠΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΈΠΌΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΠΎΠ²Π° Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½ΠΎ Π±Π΅Π· Π΄Π° ΡΠ΅ ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΠΎΠ΄Π²ΠΎΡΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° SELinux Π·Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ.
ΠΠ°ΠΆΠ½Π° Π½ΠΈΡΠ°Π½ΡΠ°
ΠΠΎ Π½ΠΈΠΊΠΎΡ ΡΠ»ΡΡΠ°Ρ Π½Π΅ ΡΡΠ΅Π±Π° Π΄Π° Π±ΡΠΈΡΠ΅ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΡΠ΅. ΠΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΡΡΡΠΈ.
Π ΠΎΠ²Π° Π½Π΅ ΡΠ΅ ΡΠΈΡΠ΅ ΠΏΡΠ΅Π΄Π½ΠΎΡΡΠΈ
ΠΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π·Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π΅ ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈ Π½Π° Π³ΠΎΡΠ΅Π½Π°Π²Π΅Π΄Π΅Π½ΠΎΡΠΎ ΡΡΠ΅Π½Π°ΡΠΈΠΎ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΈΡΠ΅ ΡΠΈΡΠ΅ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΎ ΠΌΡΠ΅ΠΆΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ Π΄Π° Π΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ Π΄ΠΎ ΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π° Buildah. ΠΠ° ΡΠ΅ΡΠ΅ΠΌΠ΅ Π΄Π΅ΠΊΠ° ΠΈΠΌΠ°ΠΌΠ΅ ΡΡΠΎΡΠΈΡΠΈ ΡΠ»ΠΈΠΊΠΈ ΡΡΠΎ Π½Π°ΡΠΈΠΎΡ CI/CD ΡΠΈΡΡΠ΅ΠΌ ΡΠ΅Π΄ΠΎΠ²Π½ΠΎ Π³ΠΈ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° Π΄Π° ΠΈΠ·Π³ΡΠ°Π΄ΠΈ ΡΠ»ΠΈΠΊΠΈ ΠΎΠ΄ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ. ΠΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡΠΈΡΠ°ΠΌΠ΅ ΡΠΈΡΠ΅ ΠΎΠ²ΠΈΠ΅ ΡΠ»ΠΈΠΊΠΈ Π½Π° Π΅Π΄Π΅Π½ Ρ ΠΎΡΡ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΠΎΡΠΎΠ°, ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ Π³ΠΈ ΠΏΡΠ΅ΡΠΏΠΎΡΠΈΡΠ°Π½ΠΈΡΠ΅ Π°Π»Π°ΡΠΊΠΈ Π·Π° ΠΌΡΠ΅ΠΆΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ (NFS, Gluster, Ceph, ISCSI, S3...), ΠΎΡΠ²ΠΎΡΠ°ΠΌΠ΅ ΠΎΠΏΡΡ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΎΠ²Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π΄ΠΎ ΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈ Π½Π° Buildah ΠΈΠ»ΠΈ Kubernetes.
Π‘Π΅Π³Π° Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π΄Π° Π³ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ΅ ΠΎΠ²ΠΎΡ ΠΌΡΠ΅ΠΆΠ΅Π½ ΡΠΊΠ»Π°Π΄ Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΎΡ Buildah Π½Π° /var/lib/shared ΠΈ ΡΠΎΠ° Π΅ ΡΓ¨ - ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ Π½Π° Buildah Π²Π΅ΡΠ΅ Π½Π΅ ΠΌΠΎΡΠ° Π΄Π° ΠΏΡΠ΅Π·Π΅ΠΌΠ°Π°Ρ ΡΠ»ΠΈΠΊΠΈ ΠΏΡΠ΅ΠΊΡ pull. Π’Π°ΠΊΠ°, ΡΠ° ΠΈΡΡΡΠ»Π°ΠΌΠ΅ ΡΠ°Π·Π°ΡΠ° Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠΏΡΠ»Π°ΡΠΈΡΠ° ΠΈ Π²Π΅Π΄Π½Π°Ρ ΡΠΌΠ΅ ΠΏΠΎΠ΄Π³ΠΎΡΠ²Π΅Π½ΠΈ Π΄Π° Π³ΠΈ ΡΡΠΊΠ°Π»Π°ΠΌΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅.
Π, ΡΠ΅ ΡΠ°Π·Π±ΠΈΡΠ°, ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΆΠΈΠ²ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π½Π° Kubernetes ΠΈΠ»ΠΈ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΡΠΊΠ° ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΠ° Π·Π° Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ ΠΈ ΠΏΡΡΡΠ°ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ Π½Π°ΡΠ΅ΠΊΠ°Π΄Π΅ Π±Π΅Π· Π½ΠΈΠΊΠ°ΠΊΠ²ΠΎ Π²Π»Π΅ΡΠ½ΠΎ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ ΡΠ»ΠΈΠΊΠΈ. ΠΠΎΠΊΡΠ°Ρ ΡΠΎΠ°, ΡΠ΅Π³ΠΈΡΡΠ°ΡΠΎΡ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ, Π΄ΠΎΠ±ΠΈΠ²Π°ΡΡΠΈ Π±Π°ΡΠ°ΡΠ΅ Π·Π° ΠΏΡΠΈΡΠΈΡΠΊΠ°ΡΠ΅ Π΄Π° ΠΏΠΎΡΡΠ°Π²ΠΈ Π°ΠΆΡΡΠΈΡΠ°Π½Π° ΡΠ»ΠΈΠΊΠ° Π½Π° Π½Π΅Π³ΠΎ, ΠΌΠΎΠΆΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΡΠΊΠΈ Π΄Π° ΡΠ° ΠΈΡΠΏΡΠ°ΡΠΈ ΠΎΠ²Π°Π° ΡΠ»ΠΈΠΊΠ° Π΄ΠΎ Π·Π°Π΅Π΄Π½ΠΈΡΠΊΠΎ ΠΌΡΠ΅ΠΆΠ½ΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅, ΠΊΠ°Π΄Π΅ ΡΡΠΎ Π²Π΅Π΄Π½Π°Ρ ΡΡΠ°Π½ΡΠ²Π° Π΄ΠΎΡΡΠ°ΠΏΠ½Π° Π·Π° ΡΠΈΡΠ΅ ΡΠ°Π·Π»ΠΈ.
Π‘Π»ΠΈΠΊΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΠΏΠΎΠ½Π΅ΠΊΠΎΠ³Π°Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΡΡΠΈΠ³Π½Π°Ρ ΠΌΠ½ΠΎΠ³Ρ Π³ΠΈΠ³Π°Π±Π°ΡΡΠΈ Π²ΠΎ Π³ΠΎΠ»Π΅ΠΌΠΈΠ½Π°. Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° ΠΈΠ·Π±Π΅Π³Π½Π΅ΡΠ΅ ΠΊΠ»ΠΎΠ½ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΡΠ»ΠΈΠΊΠΈ Π½ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ΅ ΠΈ Π³ΠΎ ΠΏΡΠ°Π²ΠΈ Π»Π°Π½ΡΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈΡΠ΅ ΡΠ΅ΡΠΈΡΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ.
ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΠΌΠΎΠΌΠ΅Π½ΡΠ°Π»Π½ΠΎ ΡΠ°Π±ΠΎΡΠΈΠΌΠ΅ Π½Π° Π½ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΡΠ° Π½Π°ΡΠ΅ΡΠ΅Π½Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΡΠ° Π·Π° ΡΠ°ΡΠΈΠ½Π° Π½Π° ΠΏΡΠ΅ΠΊΠ»ΠΎΠΏ, ΠΊΠΎΡΠ° ΡΠ΅ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈ ΠΈΠ·Π³ΡΠ°Π΄Π±Π°ΡΠ° Π½Π° ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅ΡΠΈ ΡΡΡΠ΅ ΠΏΠΎΠ±ΡΠ·ΠΎ.
ΠΠ°ΠΊΠ»ΡΡΠΎΠΊ
Π Π°Π±ΠΎΡΠ΅ΡΠ΅ΡΠΎ Π½Π° Buildah Π²ΠΎ ΠΊΠΎΠ½ΡΠ΅ΡΠ½Π΅Ρ Π²ΠΎ Kubernetes/CRI-O, Podman ΠΈΠ»ΠΈ Π΄ΡΡΠΈ ΠΈ Docker Π΅ ΠΈΠ·Π²ΠΎΠ΄Π»ΠΈΠ²ΠΎ, Π΅Π΄Π½ΠΎΡΡΠ°Π²Π½ΠΎ ΠΈ ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΡΠΈΠ³ΡΡΠ½ΠΎ ΠΎΠ΄ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ΡΠΎ Π½Π° docker.socket. ΠΠΎ Π³ΠΎΠ»Π΅ΠΌΠ° ΠΌΠ΅ΡΠ° ΡΠ° Π·Π³ΠΎΠ»Π΅ΠΌΠΈΠ²ΠΌΠ΅ ΡΠ»Π΅ΠΊΡΠΈΠ±ΠΈΠ»Π½ΠΎΡΡΠ° Π·Π° ΡΠ°Π±ΠΎΡΠ° ΡΠΎ ΡΠ»ΠΈΠΊΠΈ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π½Π°ΡΠΈΠ½ΠΈ Π·Π° Π΄Π° Π³ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π±Π°Π»Π°Π½ΡΠΎΡ ΠΏΠΎΠΌΠ΅ΡΡ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡΠ° ΠΈ ΠΏΠ΅ΡΡΠΎΡΠΌΠ°Π½ΡΠΈΡΠ΅.
Π€ΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡΠ° Π½Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎΡΠΎ ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π²ΠΈ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡΠ²Π° Π΄Π° Π³ΠΎ Π·Π°Π±ΡΠ·Π°ΡΠ΅, ΠΏΠ° Π΄ΡΡΠΈ ΠΈ ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π΄Π° Π³ΠΎ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡΠ°ΡΠ΅ ΠΏΡΠ΅Π·Π΅ΠΌΠ°ΡΠ΅ΡΠΎ Π½Π° ΡΠ»ΠΈΠΊΠΈ Π²ΠΎ ΡΠ°Π·Π»ΠΈ.
ΠΠ·Π²ΠΎΡ: www.habr.com
