From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6989998000320806912 X-Received: by 2002:a1c:7c10:: with SMTP id x16mr5712348wmc.41.1628179044711; Thu, 05 Aug 2021 08:57:24 -0700 (PDT) X-BeenThere: isar-users@googlegroups.com Received: by 2002:a05:600c:2214:: with SMTP id z20ls3077892wml.2.gmail; Thu, 05 Aug 2021 08:57:23 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzz0nbl+yvO3uyDZLvzkAjMgByA3NlZR3aYNmaF+i22nKD8zApTXmMBi78XJUpkATZGRlOe X-Received: by 2002:a05:600c:c2:: with SMTP id u2mr5739184wmm.106.1628179043695; Thu, 05 Aug 2021 08:57:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628179043; cv=none; d=google.com; s=arc-20160816; b=mZfZEbljeFxYMbfcyuRvDXf4R/DWEwPEo2L7D0J73P6boZTtrhQIQxGu2F37XaOjQm PGn/pwkblP6S6jm3HXAq42dlbiRHagAYn6ihAhOurglb7hGvo3R84PzxtF4FZdgY8ifU H0L1AFHgg4tbTyU//5E3vKy+KcrKmgdx5bsQhd3as89XHx9goHIuzEZw2c2PHsWyTuD5 gMVgCHFUZzDXl9uFwKGBnKJUgzFADARWlRWnn9+yjqWIycIYDpNFAuk4niQq3X+YFK/c u79GZIaLJJm1TFM+5Z/E6c+kITZDmpWN9q992cbsyWrrtfaorVhpoCxHFLGfz+NrvPD7 7gDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=W0JNdL5jweC3zCNzoNYUQcgB4CnSJY6J0n89r2pOeBQ=; b=unhUu9xZ8Iqte4MENI7cmzl9YE0bd3ZYQYGCJjyVeegjLDhOA+I/Ih0zwsXU8ptDJC fv9m7Tq/tp8RlzYB7dCUIzVkVnJAa5vlR1v0VIM82SLkBecW0O5SPYspgBIdECffWtMB z+hPQ8GVl1ajIAPoYqsdCH60LeE4sRWPRQHurgdYXO+vddgDP5GWS12Xbg4zaQ5c7Mrm 4jR4WdLNfkdDp6tyEAwQzPRa/gHv1dInGPHlIj8E57Xt7Sw3wPODb6NdtPjFPsdupeso s5YHhGZHHU/7SJSRSXfDILrWVCLL5hRoP3yNnd+1JfwAUyzfiS+HZp/AHd16qHMsPnUw /KYw== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Return-Path: Received: from david.siemens.de (david.siemens.de. [192.35.17.14]) by gmr-mx.google.com with ESMTPS id o83si389745wme.2.2021.08.05.08.57.23 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 05 Aug 2021 08:57:23 -0700 (PDT) Received-SPF: pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) client-ip=192.35.17.14; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of henning.schild@siemens.com designates 192.35.17.14 as permitted sender) smtp.mailfrom=henning.schild@siemens.com; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=siemens.com Received: from mail1.sbs.de (mail1.sbs.de [192.129.41.35]) by david.siemens.de (8.15.2/8.15.2) with ESMTPS id 175FvNYg010765 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 5 Aug 2021 17:57:23 +0200 Received: from md1za8fc.ad001.siemens.net ([139.25.0.59]) by mail1.sbs.de (8.15.2/8.15.2) with ESMTP id 175FvMeD025489; Thu, 5 Aug 2021 17:57:23 +0200 From: Henning Schild To: isar-users@googlegroups.com Cc: Silvano Cirujano Cuesta , Henning Schild Subject: [PATCH v4 3/5] classes: allow more control over container image name and tag Date: Thu, 5 Aug 2021 17:57:19 +0200 Message-Id: <20210805155721.11872-4-henning.schild@siemens.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210805155721.11872-1-henning.schild@siemens.com> References: <20210805155721.11872-1-henning.schild@siemens.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TUID: GR7afrSDT4Cs This patch allows more fine-grained control over how the resulting container will be tagged. Where the default name will be PN together with DISTRO and ARCH, and tag will be derived from PV and PR Signed-off-by: Henning Schild --- RECIPE-API-CHANGELOG.md | 4 ++++ doc/user_manual.md | 8 ++++---- meta/classes/container-img.bbclass | 4 +--- meta/classes/image-container-extension.bbclass | 11 ++++++----- meta/classes/image-sdk-extension.bbclass | 2 +- 5 files changed, 16 insertions(+), 13 deletions(-) diff --git a/RECIPE-API-CHANGELOG.md b/RECIPE-API-CHANGELOG.md index 806c2914f13f..a698eafc8843 100644 --- a/RECIPE-API-CHANGELOG.md +++ b/RECIPE-API-CHANGELOG.md @@ -292,3 +292,7 @@ Migrate your patches so they can be applied with "git am", or Kernel image name for arm64 platforms is vmlinux now. Image format was not changed (uncompressed executable) but now it is named correctly. + +### Change default "TARGET_IMAGE:TAG" when building container images + +The "TARGET_IMAGE" used to be rather static and the TAG was always "latest", now the values are derived from recipe variables PN, PV, PR. diff --git a/doc/user_manual.md b/doc/user_manual.md index cf7dc2fee35e..e5c07bd41fc5 100644 --- a/doc/user_manual.md +++ b/doc/user_manual.md @@ -300,14 +300,14 @@ bitbake mc:qemuarm-buster:isar-image-base - Load the container image into the Docker Daemon ``` -docker load -i build/tmp/deploy/images/qemuarm/debian-buster-armhf-docker-archive.tar.xz +docker load -i build/tmp/deploy/images/qemuarm/isar-image-base-debian-buster-armhf-1.0-r0-docker-archive.tar.xz ``` - Run a container using the container image (following commands starting with `#~:` are to be run in the container) ``` -docker run --rm -ti --volume "$(pwd):/build" isar-buster-armhf:latest +docker run --rm -ti --volume "$(pwd):/build" isar-image-base-debian-buster-armhf:1.0-r0 ``` --- @@ -1070,14 +1070,14 @@ bitbake -c do_populate_sdk mc:qemuarm-buster:isar-image-base - Load the SDK container image into the Docker Daemon ``` -docker load -i build/tmp/deploy/images/qemuarm/sdk-debian-buster-armhf-docker-archive.tar.xz +docker load -i build/tmp/deploy/images/qemuarm/isar-image-base-debian-buster-armhf-1.0-r0-docker-archive.tar.xz ``` - Run a container using the SDK container image (following commands starting with `#~:` are to be run in the container) ``` -docker run --rm -ti --volume "$(pwd):/build" isar-sdk-buster-armhf:latest +docker run --rm -ti --volume "$(pwd):/build" isar-image-base-debian-buster-armhf:1.0-r0 ``` - Check that cross toolchains are installed diff --git a/meta/classes/container-img.bbclass b/meta/classes/container-img.bbclass index 79ef3e8d756b..9928a58ef53d 100644 --- a/meta/classes/container-img.bbclass +++ b/meta/classes/container-img.bbclass @@ -9,10 +9,8 @@ do_container_image[stamp-extra-info] = "${DISTRO}-${MACHINE}" do_container_image[vardeps] += "CONTAINER_FORMATS" do_container_image(){ - rootfs_id="${DISTRO}-${DISTRO_ARCH}" - bbdebug 1 "Generate container image in these formats: ${CONTAINER_FORMATS}" - containerize_rootfs "${IMAGE_ROOTFS}" "${rootfs_id}" "${CONTAINER_FORMATS}" + containerize_rootfs "${IMAGE_ROOTFS}" "${CONTAINER_FORMATS}" } addtask container_image before do_image after do_image_tools diff --git a/meta/classes/image-container-extension.bbclass b/meta/classes/image-container-extension.bbclass index 0e70ba9c1405..cfbc5f2f3786 100644 --- a/meta/classes/image-container-extension.bbclass +++ b/meta/classes/image-container-extension.bbclass @@ -6,15 +6,16 @@ # This class extends the image.bbclass for containerizing the root filesystem. CONTAINER_FORMATS ?= "docker-archive" +CONTAINER_IMAGE_TARGET_IMAGE ?= "${PN}-${DISTRO}-${DISTRO_ARCH}" +CONTAINER_IMAGE_TAG ?= "${PV}-${PR}" containerize_rootfs() { local cmd="/bin/dash" local empty_tag="empty" - local tag="latest" + local tag="${CONTAINER_IMAGE_TAG}" local oci_img_dir="${WORKDIR}/oci-image" local rootfs="$1" - local rootfs_id="$2" - local container_formats="$3" + local container_formats="$2" # prepare OCI container image skeleton bbdebug 1 "prepare OCI container image skeleton" @@ -42,9 +43,9 @@ containerize_rootfs() { sudo chown --recursive $(id -u):$(id -g) "${oci_img_dir}" # convert the OCI container image to the desired format - image_name="isar-${rootfs_id}" + image_name="${CONTAINER_IMAGE_TARGET_IMAGE}" for image_type in ${CONTAINER_FORMATS} ; do - image_archive="${DEPLOY_DIR_IMAGE}/${rootfs_id}-${image_type}.tar" + image_archive="${DEPLOY_DIR_IMAGE}/${image_name}-${tag}-${image_type}.tar" bbdebug 1 "Creating container image type: ${image_type}" case "${image_type}" in "docker-archive" | "oci-archive") diff --git a/meta/classes/image-sdk-extension.bbclass b/meta/classes/image-sdk-extension.bbclass index 426b92595554..fa15b588068c 100644 --- a/meta/classes/image-sdk-extension.bbclass +++ b/meta/classes/image-sdk-extension.bbclass @@ -80,7 +80,7 @@ do_populate_sdk() { # generate the SDK in all the desired container formats if [ -n "${sdk_container_formats}" ] ; then bbnote "Generating SDK container in ${sdk_container_formats} format" - containerize_rootfs "${SDKCHROOT_DIR}" "sdk-${DISTRO}-${DISTRO_ARCH}" "${sdk_container_formats}" + containerize_rootfs "${SDKCHROOT_DIR}" "${sdk_container_formats}" fi } -- 2.31.1