imagetypes_container: add PATH variable to container config

Message ID 20251007070753.1010939-2-itrue@emlix.com
State New
Headers show
Series imagetypes_container: add PATH variable to container config | expand

Commit Message

Isaac True Oct. 7, 2025, 7:07 a.m. UTC
From: Matthias Beckert <matthias.beckert@elektrobit.com>

Without a PATH variable as part of the container config, certain
tools[1] used in Github Actions may break PATH.

[1] https://github.com/actions/runner/issues/3210

Co-authored-by: Isaac True <itrue@emlix.com>
Signed-off-by: Isaac True <itrue@emlix.com>
---
 meta/classes/imagetypes_container.bbclass | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Felix Moessbauer Oct. 7, 2025, 8:01 a.m. UTC | #1
On Tue, 2025-10-07 at 09:07 +0200, 'Isaac True' via isar-users wrote:
> From: Matthias Beckert <matthias.beckert@elektrobit.com>
> 
> Without a PATH variable as part of the container config, certain
> tools[1] used in Github Actions may break PATH.

+ CC Silvano

Thanks, this indeed was missing.

Reviewed-by: Felix Moessbauer <felix.moessbauer@siemens.com>

Felix

> 
> [1] https://github.com/actions/runner/issues/3210
> 
> Co-authored-by: Isaac True <itrue@emlix.com>
> Signed-off-by: Isaac True <itrue@emlix.com>
> ---
>  meta/classes/imagetypes_container.bbclass | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/meta/classes/imagetypes_container.bbclass b/meta/classes/imagetypes_container.bbclass
> index 60b65bd8..ea15decf 100644
> --- a/meta/classes/imagetypes_container.bbclass
> +++ b/meta/classes/imagetypes_container.bbclass
> @@ -13,6 +13,7 @@ CONTAINER_IMAGE_NAME ?= "${PN}-${DISTRO}-${DISTRO_ARCH}"
>  CONTAINER_IMAGE_TAG ?= "${PV}-${PR}"
>  CONTAINER_IMAGE_CMD ?= "/bin/dash"
>  CONTAINER_IMAGE_ENTRYPOINT ?= ""
> +CONTAINER_IMAGE_PATH ?= "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
>  
>  python() {
>      if not bb.utils.to_boolean(d.getVar('USING_CONTAINER')):
> @@ -30,6 +31,7 @@ do_containerize() {
>      local entrypoint="${CONTAINER_IMAGE_ENTRYPOINT}"
>      local empty_tag="empty"
>      local tag="${CONTAINER_IMAGE_TAG}"
> +    local path="${CONTAINER_IMAGE_PATH}"
>      local oci_img_dir="${WORKDIR}/oci-image"
>      local rootfs="${IMAGE_ROOTFS}"
>  
> @@ -46,6 +48,10 @@ do_containerize() {
>          sudo umoci config --image "${oci_img_dir}:${empty_tag}" \
>              --config.entrypoint="${entrypoint}"
>      fi
> +    if [ -n "${path}" ]; then
> +        sudo umoci config --image "${oci_img_dir}:${empty_tag}" \
> +            --config.env="PATH=${path}"
> +    fi
>      sudo umoci unpack --image "${oci_img_dir}:${empty_tag}" \
>          "${oci_img_dir}_unpacked"
>  
> 
> -- 
> You received this message because you are subscribed to the Google Groups "isar-users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to isar-users+unsubscribe@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/isar-users/20251007070753.1010939-2-itrue%40emlix.com.

Patch

diff --git a/meta/classes/imagetypes_container.bbclass b/meta/classes/imagetypes_container.bbclass
index 60b65bd8..ea15decf 100644
--- a/meta/classes/imagetypes_container.bbclass
+++ b/meta/classes/imagetypes_container.bbclass
@@ -13,6 +13,7 @@  CONTAINER_IMAGE_NAME ?= "${PN}-${DISTRO}-${DISTRO_ARCH}"
 CONTAINER_IMAGE_TAG ?= "${PV}-${PR}"
 CONTAINER_IMAGE_CMD ?= "/bin/dash"
 CONTAINER_IMAGE_ENTRYPOINT ?= ""
+CONTAINER_IMAGE_PATH ?= "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
 
 python() {
     if not bb.utils.to_boolean(d.getVar('USING_CONTAINER')):
@@ -30,6 +31,7 @@  do_containerize() {
     local entrypoint="${CONTAINER_IMAGE_ENTRYPOINT}"
     local empty_tag="empty"
     local tag="${CONTAINER_IMAGE_TAG}"
+    local path="${CONTAINER_IMAGE_PATH}"
     local oci_img_dir="${WORKDIR}/oci-image"
     local rootfs="${IMAGE_ROOTFS}"
 
@@ -46,6 +48,10 @@  do_containerize() {
         sudo umoci config --image "${oci_img_dir}:${empty_tag}" \
             --config.entrypoint="${entrypoint}"
     fi
+    if [ -n "${path}" ]; then
+        sudo umoci config --image "${oci_img_dir}:${empty_tag}" \
+            --config.env="PATH=${path}"
+    fi
     sudo umoci unpack --image "${oci_img_dir}:${empty_tag}" \
         "${oci_img_dir}_unpacked"