Can someone please build us a 32-bit Debian container image please?

Andrew Bartlett abartlet at samba.org
Thu Nov 17 18:19:06 UTC 2022


On Thu, 2022-11-17 at 15:45 +0300, Michael Tokarev via samba-technical
wrote:
> 17.11.2022 04:02, Andrew Bartlett via samba-technical wrote:
> > https://github.com/docker-32bit/debian
> >  is GPLv3 and small, could
> > someone please adapt that into our bootstrap system and buildar and
> > have us build a Debian i686 image for our CI?
> 
> I know very little about docker, but I do use debian images (and
> other
> system images) quite often, - in particular, to test samba and qemu
> (which I happen to maintain too).  I use various images to build
> samba
> for different versions of different systems this way, too.
> 
> The procedure outlined in there is trivial, they use debootstrap to
> install a base system image into a directory, create a tar archive
> out of it and import it to docker. Debootstrap utility is a shell
> script which is supposed to run on various unix-like OSes.
> 
> Andrew, what is needed, exactly?  I mean, what should this image
> contain and how it will be used?

It looks like metze has made a start, but I'm sure help is welcome
because like many things in Samba this will be easy to start but still
take effort to finish, and it is thankfully an explainable task.

It is also a good time to explain how our multi-OS selftest system
works, at a high level.

If you look in bootstrap/  you can see a README that explains a little,
but I'll also overview things here.

Our CI system uses GitLab CI, and our .gitlab-ci-* files reference
'docker' images (now a standard, OCI I think) when we build with
buildar.  

The packages they contain are set in bootstrap/config.py and rendered
into shell scripts under bootstrap/generated-dist

These are invoked from a generated Dockerfile when our CI is started,
provided SAMBA_CI_REBUILD_IMAGES="yes" is set as a GitLab pipeline
environment variable.

These images are then pushed back up to a container registry on the
GitLab server, from which they are fetched during later parts of the
image generation run, as well as in later CI jobs. 

It is important that the ultimate source of these images is trusted, as
the docker image it produces is a trusted part of our build process. 

(This is also why we can't accept community contributions of CI hosts,
and rebuild the whole VM after each task, because the CI system in
GitLab is privileged, and can act as the user running CI). 

Metze has chosen to start with the i386 community project, which is
hopefully enough for our needs - when I looked I couldn't find the
currently maintained versions of that, hence the bootstrap approach I
was indicating.  

Finally, the big task is clearly now to produce the i386 image, but to
get Samba to build under it.  The failed pipeline log here:

https://gitlab.com/samba-team/devel/samba/-/jobs/3340360869

shows that there are a lot of things still to fix up (or ignore, but
the point is not to ignore things long term), in this case in the
upstream cmocka.

Andrew Bartlett

-- 
Andrew Bartlett (he/him)       https://samba.org/~abartlet/
Samba Team Member (since 2001) https://samba.org
Samba Team Lead, Catalyst IT   https://catalyst.net.nz/services/samba

Samba Development and Support, Catalyst IT - Expert Open Source
Solutions




More information about the samba-technical mailing list