tbz images

8 views
Skip to first unread message

Roger Oberholtzer

unread,
Feb 3, 2026, 8:40:55 AM (8 days ago) Feb 3
to kiwi-...@googlegroups.com
I use kiwi to make a tbz image that contains the tools I need to
compile our software for a specific target, like Leap 15.3 or 15.6.
This works great. I use chroot to be placed in an environment where
these tools build as I would like.

Some new developers are giving me a hard time for using chroot
directly. It's too old fashioned. Seriously. So I am curious if there
might be a better format to use than tbz that might let us use shinny
new tools to put us in an environment like I get with chroot. Before
chrooting, I mount various things like the source tree where the build
will happen, and a couple system locations and files. So I can do
things inside this like run zypper to get a new tools that was not in
the build. I would like that basic capability.

Any suggestions are welcome!

--
Roger Oberholtzer

Marcus Schäfer

unread,
Feb 4, 2026, 6:45:36 AM (7 days ago) Feb 4
to kiwi-...@googlegroups.com
Hi Roger,

> I use kiwi to make a tbz image that contains the tools I need to
> compile our software for a specific target, like Leap 15.3 or 15.6.
> This works great. I use chroot to be placed in an environment where
> these tools build as I would like.

Got it

> Some new developers are giving me a hard time for using chroot
> directly. It's too old fashioned. Seriously.

:-)

> So I am curious if there
> might be a better format to use than tbz that might let us use shinny
> new tools to put us in an environment like I get with chroot. Before
> chrooting, I mount various things like the source tree where the build
> will happen, and a couple system locations and files. So I can do
> things inside this like run zypper to get a new tools that was not in
> the build. I would like that basic capability.

I suggest to move to a container based workload. So instead of 'tbz'
you can build an OCI compliant container.

<type image="docker">
<containerconfig name="builddev"/>
</type>

The result image can be loaded into the local registry via

podman load -i the-container-image

If you build the above in a remote service like OBS, the container
gets automatically registered in the opensuse registry and you
could fetch it via

podman pull ...

Once the container exists in the local repository you can run
a workload like this:

podman run --rm -ti builddev /some/compile/job

When calling a container you can mount so called shared volumes
to the container instance:

--volume /some/host/path:/some/path/inside/the/container

Which gives you a lot flexibility. There is a lot more to say
about containers, network, security, storage, cross-arch ...
but that would be too much according to the question you asked.

In any case I believe if you base your stuff on container
technology you are leaving the old-school chroot path :-)
I'm using containers a lot

Hope this helps

Best regards,
Marcus
--
Public Key available via: https://keybase.io/marcus_schaefer/key.asc
keybase search marcus_schaefer
signature.asc

J. Mixer

unread,
Feb 5, 2026, 9:41:46 AM (6 days ago) Feb 5
to kiwi
Roger,

I agree with Marcus that containers can do what the old chroot environment can do and more. It took this old guy (me) a while to "grok" (completely understand) containers and how to manipulate them, but once done they are effective. They are much more up-to-date for the newer employees too.

I'm retired now but enjoy keeping up with Kiwi imaging (and helping the ones who are still at work!)

Regards,

J. Mixer

Roger Oberholtzer

unread,
Feb 6, 2026, 3:10:21 AM (5 days ago) Feb 6
to kiwi-...@googlegroups.com
I was suspecting a docker type solution. I just wished I could get a
couple existing tbz things that already exist into such an
environment. But I will definitely make a new one as a test. The main
existing tbz images that I use (with additions added later via zypper)
are for Leap 15.3 and 15.6. I suspect that I could make a new 15.6
one. But not a 15.3. I guess getting the existing trees into docker is
a docker thing. Any pointers from the kiwi perspective would be
welcome.
> --
> You received this message because you are subscribed to the Google Groups "kiwi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kiwi-images...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/kiwi-images/ac09e8de-920c-4270-8209-d70c3be7e100n%40googlegroups.com.



--
Roger Oberholtzer

Marcus Schäfer

unread,
Feb 6, 2026, 4:26:49 AM (5 days ago) Feb 6
to kiwi-...@googlegroups.com
Hi,

> existing tbz images that I use (with additions added later via zypper)
> are for Leap 15.3 and 15.6. I suspect that I could make a new 15.6
> one. But not a 15.3. I guess getting the existing trees into docker is
> a docker thing. Any pointers from the kiwi perspective would be
> welcome.

You can turn any existing tbz image into a docker container
with the following procedure:

1. Unpack your existing .tbz

mkdir -p /tmp/myimage/build/image-root
tar -C /tmp/myimage/build/image-root -xf ...

2. Create an image description suitable for building a docker
container.

mkdir -p /path/to/your/image/description
vi /path/to/your/image/description/appliance.kiwi

---
<image schemaversion="7.5" name="kiwi-test-image-docker">
<description type="system">
<author>You</author>
<contact>y...@example.com</contact>
<specification>build an OCI container</specification>
</description>
<preferences>
<version>1.1.0</version>
<packagemanager>zypper</packagemanager>
<type image="docker">
<containerconfig name="some"/>
</type>
</preferences>
<!-- some repo is needed, but without packages nothing happens -->
<repository type="rpm-md">
<source path="obs://Virtualization:Appliances:Builder/openSUSE_Leap_15.4"/>
</repository>
<packages type="bootstrap"/>
</image>
---

3. Now create the container via

kiwi-ng system build \
--description /path/to/your/image/description \
--target-dir /tmp/myimage \
--allow-existing-root

With "--allow-existing-root" and no instructions to install anything,
kiwi just takes the root tree as it is present and creates the
requested image type. A container in your case

Hope this helps

Regards,
Marcus
--
Public Key available via: https://keybase.io/marcus_schaefer/key.asc
keybase search marcus_schaefer
-------------------------------------------------------
Marcus Schäfer Brunnenweg 18
Tel: +49 7562 905437 D-88260 Argenbühl
Germany
-------------------------------------------------------
signature.asc

Roger Oberholtzer

unread,
Feb 6, 2026, 7:34:22 AM (5 days ago) Feb 6
to kiwi-...@googlegroups.com
Thanks for that. I will be trying this next week!
> --
> You received this message because you are subscribed to the Google Groups "kiwi" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to kiwi-images...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/kiwi-images/aYWz0RNuIqq2DG6O%40asterix.



--
Roger Oberholtzer
Reply all
Reply to author
Forward
0 new messages