Tomas Tomecek: Building container image with modular OS from scratch

We were sitting at “Modularity UX feedback” session at Flock 2017. Sinny Kumari
raised an interesting question: “Can I create a container image with modular OS
locally myself?“. Sinny wanted to try the modular OS on different CPU
architectures.

The container image can be created using Image Factory, which can be really
tough to set up.

I’m so glad that platform team already solved this problem during development
of Boltron in their GitHub repo
fedora-modularity/baseruntime-docker-tests.

They created a neat way of creating a docker base image from scratch using mock.

In order to do this, you should follow the instructions from
README
of the repo. Before running avocado run setup.py, we need to change configuration
of mock because by default it uses Boltron (F26) repos and targets x86_64.

I did this on my Raspberry Pi. The configuration is present in
resources/base-runtime-mock.cfg:

  1. I targeted arm CPU architecture:

    -config_opts['target_arch'] = 'x86_64'
    -config_opts['legal_host_arches'] = ('x86_64',)
    +config_opts['target_arch'] = 'armhfp'
    +config_opts['legal_host_arches'] = ('armhfp', 'armv7l' )
    
  2. I used Modular Rawhide compose repo:

    -baseurl=https://kojipkgs.fedoraproject.org/compose/latest-Fedora-Modular-26/compose/Server/x86_64/os/
    +baseurl=https://kojipkgs.fedoraproject.org/compose/latest-Fedora-Modular-Rawhide/compose/Server/armhfp/os/
    

Modular dnf is still not available in mainline. Martin is providing the RPM via
his COPR repo
mhatina/DNF-Modules.
The important note is that the modular DNF is only available for architectures
x86_64, i386 and ppc64le.

Let’s build the image!

$ sudo python2 ./setup.py
...
Successfully built dac3c6598bef

command  'docker rmi base-runtime-smoke-scratch' succeeded with output:
Untagged: base-runtime-smoke-scratch:latest

PASS 1-./setup.py:BaseRuntimeSetupDocker.testCreateDockerImage

Test results available in /tmp/avocado_avocado.core.jobwv6R1t

Once the build is done, we can try it out:

$ sudo docker run --rm -ti base-runtime-smoke-scratch:latest bash

bash-4.4# cat /etc/system-release
Fedora modular release 27 (Twenty Seven)

bash-4.4# uname -i
armv7l

Once the patches for modular DNF are in mainline, this will be a lot more interesting!


Source From: fedoraplanet.org.
Original article title: Tomas Tomecek: Building container image with modular OS from scratch.
This full article can be read at: Tomas Tomecek: Building container image with modular OS from scratch.

Advertisement


Random Article You May Like

Leave a Reply

Your email address will not be published. Required fields are marked *

*
*