Skip to content

Deploying sample applications in containers

Deploying sample applications in containers

Use the quadlet_radio_engine.aib.yml manifest to build a virtual machine OS image that includes containerized sample applications.

The sample applications include two SOME/IP services:

  • radio-service, which simulates a radio
  • engine-service that simulates other parts of the car.

There is also a command line application radio-client, which talks to the services displaying the current status and allowing you to control the radio. For more information, see the sample-apps README.

The image uses the COVESA vsomeip implementation of SOME/IP as packaged in Fedora, and rebuilt in COPR. In particular, the image starts the vsomeip routing manager (non-contained), using systemd socket activation with a custom SELinux policy that controls access.

After you boot the OS image, two container-based systemd sample services are running: radio.service and engine.service.

Prerequisites

Procedure

  1. Create and go to a new directory called sample-auto-apps:

    console $ mkdir sample-auto-apps && cd sample-auto-apps

  2. Create and save a file called radio.container that contains the following code:

    console --8<-- "demos/radio.container"

  3. Create and save a file called engine.container that contains the following code:

    console --8<-- "demos/engine.container"

  4. Create and go to a new subdirectory called quadlet_radio_engine:

    console $ mkdir quadlet_radio_engine && cd quadlet_radio_engine

  5. Create and save a build manifest file named quadlet_radio_engine.aib.yml, that contains the following YAML code:

    console --8<-- "demos/quadlet_radio_engine/quadlet_radio_engine.aib.yml:4:46"

  6. Export the current system's CPU architecture as a variable:

    console $ arch=$(arch)

  7. Run the following command to build the OS image:

    console --8<-- "demos/quadlet_radio_engine/build.sh:20:29"

  8. Boot the OS image as a virtual machine (VM) in QEMU:

    console $ sudo automotive-image-runner --nographics quadlet_radio_engine.x86_64.img

  9. Log in to the VM as the root user with the password password.

  10. Verify that the auto-apps container exists:

    ```console

    podman image list

    ```

  11. Verify that the radio service is running:

    ```console

    systemctl status radio.service

    ```

  12. Verify that the engine service is running:

    ```console

    systemctl status engine.service

    ```

  13. When you are done, run the following command to shut down the VM and return to your local terminal:

    ```console

    poweroff

    ```