Introduction


Containers offer a logical packaging mechanism in which applications can be abstracted from the environment in which they run. Containers are often compared with virtual machines (VMs).  a guest operating system such as Linux or Windows runs on top of a host operating system with virtual access to the underlying hardware. Like virtual machines, containers allow to package your application together with libraries and other dependencies, providing isolated environments for running your software services.


Why Containers?

Advantages of Containers

Implementation details


  Containers layer - meta-rdk-containers:    

  Emulator layer - meta-rdk-bsp-emulator:

  New Container generation process:

     This subsection describes how the new container generation process is replacing the earlier process.

  XML and conf files:

  Service files:     

                 Three service files added for launching corresponding processes inside container (sysmgr.service, irmgr.service and dsmgr.service) .        

                 rmfstreamer.service file has been added.

                 rdkbrowser2.service file has been added.

Implemented containers


 Platformcontrol

 Rmfstreamer

 Rdkbrowser2

       Note: As we are in the plan of bringing APPmanager as default application we are not running rdkbrowser2 service file on boot-up.

Building procedure


Container verification


             

DEBUG Logs


          Example:
          strace -f -o lxc-execute.log /usr/bin/lxc-attach -n PLATFORMCONTROL -f /container/PLATFORMCONTROL/conf/lxc.conf

          -u 704 -g 704  -- /usr/bin/dsMgrMain

Test cases


Reference