[meta-virtualization][PATCH 3/7] recipes-containers/images: add app-container-mosquitto
Tim Orling <[email protected]> Fri, 29 May 2026 18:31:04 -0700
| Newsgroups | org.yoctoproject.lists.meta-virtualization |
|---|---|
| Message-ID | <8e68815affff4412c88b8a1139d6f916074bb3d1.1780104071.git.tim.orling@konsulko.com> |
Add OCI container image recipe for the Eclipse Mosquitto MQTT broker. The image uses multi-layer mode with separate base and mosquitto layers, exposes standard MQTT (1883) and WebSocket (9001) ports, and launches mosquitto with its default config file as the entrypoint. Inherit container-nonroot-user to run as 'nonroot' with UID 65532. Signed-off-by: Tim Orling <[email protected]> --- .../images/app-container-mosquitto.bb | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 recipes-containers/images/app-container-mosquitto.bb diff --git a/recipes-containers/images/app-container-mosquitto.bb b/recipes-containers/images/app-container-mosquitto.bb new file mode 100644 index 00000000..37e34a47 --- /dev/null +++ b/recipes-containers/images/app-container-mosquitto.bb @@ -0,0 +1,46 @@ +SUMMARY = "Mosquitto MQTT broker container image" +DESCRIPTION = "OCI container running the Eclipse Mosquitto MQTT broker \ +with standard MQTT (1883) and WebSocket (9001) listeners enabled." +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420" + +# Multi-layer mode: create explicit layers instead of single rootfs layer +OCI_LAYER_MODE = "multi" + +# Define layers: each layer contains specific packages +# Format: "name:type:content" where content uses + as delimiter for multiple items +OCI_LAYERS = "\ + base:packages:base-files+base-passwd+netbase \ + mosquitto:packages:mosquitto \ +" + +IMAGE_FSTYPES = "container oci" +inherit image +inherit image-oci +inherit container-nonroot-user + +IMAGE_FEATURES = "" +IMAGE_LINGUAS = "" +NO_RECOMMENDATIONS = "1" + +IMAGE_INSTALL = " \ + base-files \ + base-passwd \ + netbase \ + mosquitto \ +" + +# Allow build with or without a specific kernel +IMAGE_CONTAINER_NO_DUMMY = "1" + +# Workaround /var/volatile for now +ROOTFS_POSTPROCESS_COMMAND += "rootfs_fixup_var_volatile ; " +rootfs_fixup_var_volatile () { + install -m 1777 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/tmp + install -m 755 -d ${IMAGE_ROOTFS}/${localstatedir}/volatile/log +} + +OCI_IMAGE_ENTRYPOINT = "${sbindir}/mosquitto" +OCI_IMAGE_ENTRYPOINT_ARGS = "-c '${sysconfdir}/mosquitto/mosquitto.conf'" +OCI_IMAGE_PORTS = "1883/tcp 9001/tcp" +OCI_IMAGE_TAG = "latest" -- 2.54.0