mirror of
git://git.yoctoproject.org/meta-virtualization.git
synced 2025-07-19 12:50:22 +02:00
buildah: add recipe for buildah v1.26
buildah is a command line tool, to be installed and run on target, that can be used to: - create a working container, either from scratch or using an image as a starting point - create an image, either from a working container or via the instructions in a Dockerfile - images can be built in either the OCI image format or the traditional upstream docker image format - mount a working container's root filesystem for manipulation - unmount a working container's root filesystem - use the updated contents of a container's root filesystem as a filesystem layer to create a new image - delete a working container or an image - rename a local container Testing: Setup the build directory: $ . oe-init-build-env <build_dir> Add to local.conf: IMAGE_INSTALL:append = " buildah kernel-modules" KERNEL_FEATURES += "features/overlayfs/overlayfs.cfgi \ features/netfilter/netfilter.scc \ features/lxc/lxc-enable.scc" IMAGE_ROOTFS_EXTRA_SPACE = "5242880" Build image: $ bitbake core-image-minimal Run the image: $ runqemu nographic kvm qemuparams="-m 4096" On target: Pull an image: > cnt=$(buildah from fedora) Or build from Dockerfile > buildah bud -t <image_name>:<tag> . Mount the image: > mnt=$(buildah mount ${cnt}) Install packages on the container rootfs: > dnf install --installroot $mnt <packages_to_install> -y Copy local files to the container: > buildah copy $cnt <local_file> <dest_on_container> Save the changes to an image > buildah commit --format docker $cnt <name>:<tag> Run the image using buildah: > buildah run $cnt /bin/sh Or using docker: > docker run -it <name>:<tag> Signed-off-by: Sakib Sajal <sakib.sajal@windriver.com> Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
This commit is contained in:
parent
e4e136c520
commit
13839c7b13
57
recipes-containers/buildah/buildah_git.bb
Normal file
57
recipes-containers/buildah/buildah_git.bb
Normal file
|
@ -0,0 +1,57 @@
|
|||
HOMEPAGE = "https://buildah.io"
|
||||
SUMMARY = "A tool that facilitates building OCI container images."
|
||||
DESCRIPTION = "A tool that facilitates building OCI container images."
|
||||
|
||||
# Apache-2.0 for containerd
|
||||
LICENSE = "Apache-2.0"
|
||||
LIC_FILES_CHKSUM = "file://src/github.com/containers/buildah/LICENSE;md5=e3fc50a88d0a364313df4b21ef20c29e"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
BUILDAH_VERSION = "1.26"
|
||||
SRCREV_buildah = "0a9d6e6eaef2e2e7936313d449a4e226022eb865"
|
||||
|
||||
PV = "${BUILDAH_VERSION}"
|
||||
|
||||
inherit go
|
||||
inherit goarch
|
||||
inherit pkgconfig
|
||||
|
||||
GO_IMPORT = "github.com/containers/buildah"
|
||||
GO_INSTALL = "${GO_IMPORT}"
|
||||
GO_WORKDIR = "${GO_INSTALL}"
|
||||
GOBUILDFLAGS += "-mod vendor"
|
||||
|
||||
SRC_URI = " \
|
||||
git://github.com/containers/buildah;branch=release-${BUILDAH_VERSION};name=buildah;protocol=https \
|
||||
"
|
||||
|
||||
DEPENDS = "libdevmapper btrfs-tools gpgme"
|
||||
RDEPENDS:${PN} = "cgroup-lite fuse-overlayfs libdevmapper podman"
|
||||
RDEPENDS:${PN}-dev = "bash perl"
|
||||
|
||||
do_compile:prepend() {
|
||||
cd ${S}/src/github.com/containers/buildah
|
||||
}
|
||||
|
||||
go_do_compile() {
|
||||
export TMPDIR="${GOTMPDIR}"
|
||||
if [ -n "${GO_INSTALL}" ]; then
|
||||
if [ -n "${GO_LINKSHARED}" ]; then
|
||||
${GO} install ${GOBUILDFLAGS} ./cmd/buildah
|
||||
${GO} install ${GOBUILDFLAGS} ./tests/imgtype/imgtype.go
|
||||
${GO} install ${GOBUILDFLAGS} ./tests/copy/copy.go
|
||||
rm -rf ${B}/bin
|
||||
fi
|
||||
${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./cmd/buildah
|
||||
${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./tests/imgtype/imgtype.go
|
||||
${GO} install ${GO_LINKSHARED} ${GOBUILDFLAGS} ./tests/copy/copy.go
|
||||
fi
|
||||
}
|
||||
|
||||
do_install:append() {
|
||||
dest_dir=${D}/${sysconfdir}/containers
|
||||
mkdir -p ${dest_dir}
|
||||
install -m 666 ${S}/src/github.com/containers/buildah/docs/samples/registries.conf ${dest_dir}/buildah.registries.conf.sample
|
||||
install -m 666 ${S}/src/github.com/containers/buildah/tests/policy.json ${dest_dir}/buildah.policy.json.sample
|
||||
}
|
Loading…
Reference in New Issue
Block a user