Docker Guide
= Release Notes =
Based on release | B2Qt Thud, Poky 2.6.2, BSP: NXP 4.14.78_1.0.0-ga, Linux: imx_4.14.78_1.0.0_ga |
Release git | [/tree/ ] |
Release tag | [/tree/ ] |
Release Branch | [/tree/ ] |
Date | 05/13/2019 |
Supported platforms | VAR-SOM-MX6 / DART-MX6 / VAR-SOM-SOLO/DUAL |
SOM revision | VAR-SOM-MX6 V2.x / VAR-SOM-SOLO / VAR-SOM-DUAL / DART-MX6 |
Embedded Linux Distribution | B2Qt Community BSP Thud 2.6.2 based |
B2Qt Community BSP link | [ ] |
Qt version | |
Kernel git | https://github.com/varigit/linux-imx |
Kernel branch | imx_4.14.78_1.0.0_ga_var01 |
U-Boot git | https://github.com/varigit/uboot-imx |
U-Boot branch | imx_v2018.03_4.14.78_1.0.0_ga_var01 |
File System build system | B2Qt Thud |
Recovery SD card link | thud-fslc-4.14.78-mx6-v1.0.img.gz |
B2QT Platform Customizations
VAR-SOM-MX6
morty-b2qt-4.1.15-mx6-v1.0
- RELEASE_NAME = morty-b2qt-4.1.15-mx6-v1.0
- RELEASE_LINK = RELEASE_MORTY_B2QT_V1.0_VAR-SOM-MX6
- YOCTO_NAME = Morty
- YOCTO_VERSION = 2.2.1
- B2QT_BSP_VERSION = 5.9
- FSL_BSP_VERSION = L4.1.15_2.0.0-ga
- RECOVERY_SD_NAME = morty-b2qt-4.1.15-mx6-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX6/Software/b2qt
- RELEASE_NOTES_LINK = https://variwiki.com/index.php?title=VAR-SOM-MX6_Release_Notes&release=RELEASE_MORTY_B2QT_V1.0_VAR-SOM-MX6
- MACHINE_NAME = var-som-mx6
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_META_GIT = '
- YOCTO_BRANCH = morty
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX6_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX6_BOOT_BOARD
- KERNEL_DTB_SECTION = VAR-SOM-MX6_DTB
- SD_TREE_SECTION = VAR-SOM-MX6_SD_TREE
- B2QT_FLASH_SD_FROM_GUI_SECTION = VAR-SOM-MX6_FLASH_SD_FROM_GUI
- QT_PLATFORM_PLUGIN = eglfs
thud-b2qt-4.14.78-mx6-v1.0
- RELEASE_NAME = thud-b2qt-4.14.78-mx6-v1.0
- RELEASE_LINK = RELEASE_THUD_B2QT_V1.0_VAR-SOM-MX6
- YOCTO_NAME = Thud
- YOCTO_VERSION = 2.6.4
- B2QT_BSP_VERSION = 5.13.2
- RECOVERY_SD_NAME = thud-b2qt-4.14.78-mx6-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX6/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = var-som-mx6
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = thud
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX6_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX6_BOOT_BOARD
DART-6UL
morty-b2qt-4.1.15-mx6ul-v1.0
- RELEASE_NAME = morty-b2qt-4.1.15-mx6ul-v1.0
- RELEASE_LINK = RELEASE_MORTY_B2QT_V1.0_DART-6UL
- YOCTO_NAME = Morty
- YOCTO_VERSION = 2.2.1
- B2QT_BSP_VERSION = 5.9
- FSL_BSP_VERSION = L4.1.15_2.0.0-ga
- RECOVERY_SD_NAME = morty-b2qt-4.1.15-mx6ul-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = morty
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
- KERNEL_DTB_SECTION = DART-6UL_DTB
- SD_TREE_SECTION = DART-6UL_SD_TREE
- QT_PLATFORM_PLUGIN = eglfs
morty-b2qt-4.1.15-mx6ul-v1.1
- RELEASE_NAME = morty-b2qt-4.1.15-mx6ul-v1.1
- RELEASE_LINK = RELEASE_MORTY_B2QT_V1.1_DART-6UL
- YOCTO_NAME = Morty
- YOCTO_VERSION = 2.2.1
- B2QT_BSP_VERSION = 5.9.3
- RECOVERY_SD_NAME = morty-b2qt-4.1.15-mx6ul-v1.1.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = morty
- SDCARD_IMG_EXT = sdcard
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
thud-b2qt-4.14.78-mx6ul-v1.0
- RELEASE_NAME = thud-b2qt-4.14.78-mx6ul-v1.0
- RELEASE_LINK = RELEASE_THUD_B2QT_V1.0_DART-6UL
- YOCTO_NAME = Thud
- YOCTO_VERSION = 2.6.4
- B2QT_BSP_VERSION = 5.13.2
- RECOVERY_SD_NAME = thud-b2qt-4.14.78-mx6ul-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = https://docs.google.com/spreadsheets/d/e/2PACX-1vRWr47CM49Jebmo_oDRD6_i1P343XSfT-VY1vhFtqrwWljqzgxToyLqKLJg8_ZmJ3QGzD85gb3p5JvX/pubhtml
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = thud
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
zeus-b2qt-5.4.3-mx6ul-v1.0
- RELEASE_NAME = zeus-b2qt-5.4.3-mx6ul-v1.0
- RELEASE_LINK = RELEASE_ZEUS_B2QT_V1.0_DART-6UL
- YOCTO_NAME = Zeus
- YOCTO_VERSION = 3.0
- B2QT_BSP_VERSION = 5.15.1
- RECOVERY_SD_NAME = zeus-b2qt-5.4.3-mx6ul-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = https://variwiki.com/index.php?title=DART-6UL_Release_Notes&release=RELEASE_ZEUS_B2QT_V1.0_DART-6UL
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = zeus
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
zeus-b2qt-5.4.3-mx6ul-v1.1
- RELEASE_NAME = zeus-b2qt-5.4.3-mx6ul-v1.1
- RELEASE_LINK = RELEASE_ZEUS_B2QT_V1.1_DART-6UL
- YOCTO_NAME = Zeus
- YOCTO_VERSION = 3.0.4
- B2QT_BSP_VERSION = 5.15.2
- RECOVERY_SD_NAME = zeus-b2qt-5.4.3-mx6ul-v1.1.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = https://variwiki.com/index.php?title=DART-6UL_Release_Notes&release=RELEASE_ZEUS_B2QT_V1.1_DART-6UL
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = zeus
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
zeus-b2qt-5.4.3-mx6ul-v1.2
- RELEASE_NAME = zeus-b2qt-5.4.3-mx6ul-v1.2
- RELEASE_LINK = RELEASE_ZEUS_B2QT_V1.2_DART-6UL
- YOCTO_NAME = Zeus
- YOCTO_VERSION = 3.0.4
- B2QT_BSP_VERSION = 5.15.2
- RECOVERY_SD_NAME = zeus-b2qt-5.4.3-mx6ul-v1.2.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/DART-6UL/Software/b2qt
- RELEASE_NOTES_LINK = https://variwiki.com/index.php?title=DART-6UL_Release_Notes&release=RELEASE_ZEUS_B2QT_V1.2_DART-6UL
- MACHINE_NAME = imx6ul-var-dart
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = zeus
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = DART-6UL_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = DART-6UL_BOOT_BOARD
VAR-SOM-MX7
morty-b2qt-4.1.15-mx7-v1.0
- RELEASE_NAME = morty-b2qt-4.1.15-mx7-v1.0
- RELEASE_LINK = RELEASE_MORTY_B2QT_V1.0_VAR-SOM-MX7
- YOCTO_NAME = Morty
- YOCTO_VERSION = 2.2.1
- B2QT_BSP_VERSION = 5.9
- RECOVERY_SD_NAME = morty-b2qt-4.1.15-mx7-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX7/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx7-var-som
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = morty
- SDCARD_IMG_EXT = sdcard
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX7_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX7_BOOT_BOARD
thud-b2qt-4.14.78-mx7-v1.0
- RELEASE_NAME = thud-b2qt-4.14.78-mx7-v1.0
- RELEASE_LINK = RELEASE_THUD_B2QT_V1.0_VAR-SOM-MX7
- YOCTO_NAME = Thud
- YOCTO_VERSION = 2.6.4
- B2QT_BSP_VERSION = 5.13.2
- RECOVERY_SD_NAME = thud-b2qt-4.14.78-mx7-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX7/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx7-var-som
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = thud
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX7_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX7_BOOT_BOARD
dunfell-b2qt-5.4.85-mx7-v1.0
- RELEASE_NAME = dunfell-b2qt-5.4.85-mx7-v1.0
- RELEASE_LINK = RELEASE_DUNFELL_B2QT_V1.0_VAR-SOM-MX7
- YOCTO_NAME = Dunfell
- YOCTO_VERSION = 3.1.7
- B2QT_BSP_VERSION = 6.0.4
- RECOVERY_SD_NAME = dunfell-b2qt-5.4.85-mx7-v1.0.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX7/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx7-var-som
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = dunfell
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX7_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX7_BOOT_BOARD
mx7-b2qt-dunfell-5.4-2.1.x-v1.1
- RELEASE_NAME = mx7-b2qt-dunfell-5.4-2.1.x-v1.1
- RELEASE_LINK = mx7-b2qt-dunfell-5.4-2.1.x-v1.1
- YOCTO_NAME = Dunfell
- YOCTO_VERSION = 3.1.7
- B2QT_BSP_VERSION = 6.0.4
- RECOVERY_SD_NAME = mx7-b2qt-dunfell-5.4-2.1.x-v1.1.img.gz
- RECOVERY_SD_URL = https://variscite-public.nyc3.cdn.digitaloceanspaces.com/VAR-SOM-MX7/Software/b2qt
- RELEASE_NOTES_LINK = TBD
- MACHINE_NAME = imx7-var-som
- B2QT_GIT = https://github.com/varigit/meta-variscite-boot2qt.git
- YOCTO_BRANCH = dunfell
- SDCARD_IMG_EXT = wic
- B2QT_BUILD_RESULTS_SECTION = VAR-SOM-MX7_BUILD_RESULTS
- B2QT_BOOT_BOARD_SECTION = VAR-SOM-MX7_BOOT_BOARD
DART-MX8M-MINI
VAR-SOM-MX8M-NANO
VAR-SOM-MX8
Docker Introduction
Docker is a software platform that allows the creation, testing and distribution of applications via containers.
Containers let you run your applications in resource-isolated processes. There are some similarities to virtual machines, but
containers are more portable, more resource-friendly, and enables faster software delivery cycles.
Often used with docker there's a companion tool known as docker-compose: compose is used for defining and running multi-container Docker applications.
You can check Docker online documentation at:
https://docs.docker.com/get-started/
https://docs.docker.com/compose/
https://training.play-with-docker.com/
https://docker-curriculum.com/
Yocto Integration
Recipe
Before you begin, get familiar with the Yocto Build Release guide.
The Yocto BSP provides 2 dedicated images:
- var-image-docker: a graphic enabled image based on fsl-image-gui with the addition of a few more packages:
- docker-ce
- python3-docker-compose
- var-image-docker-minimal: a console image based on the core-image bbclass with the addition of a few more packages and features:
- docker-ce
- python3-docker-compose
- ssh-server-dropbear
- basic command line tools
Create a Docker-ready Image
- Follow steps 1-3 of the Yocto Build Release page.
$ cd ~/var-b2qt $ MACHINE=imx8mp-var-dart . setup-environment.sh
Append the following to the conf/local.conf file in your Yocto build directory:
DISTRO_FEATURES_append = " virtualization"
$ bitbake var-image-docker
Test Docker
- Check docker version:
root@imx8mp-var-dart:~# docker --version
Test hello-world
- Pull the hello-world image from Docker Hub:
root@imx8mp-var-dart:~# docker pull hello-world
- List docker images:
root@imx8mp-var-dart:~# docker images
- Run hello-world container:
root@imx8mp-var-dart:~# docker run hello-world Hello from Docker!
This message shows that your installation appears to be working correctly. To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
Test Ubuntu
- Pull the ubuntu image from Docker Hub:
root@imx8mp-var-dart:~# docker pull ubuntu
- Run ubuntu:
root@imx8mp-var-dart:~# docker run -it ubuntu
root@8637148015f5:/# apt update
…
root@8637148015f5:/# apt install nodejs
…
root@8637148015f5:/# node -v
…
root@8637148015f5:/# exit
root@imx8mp-var-dart:~#
Test docker-compose
- Check the docker-compose version:
root@imx8mp-var-dart:~# docker-compose --version
Examples
RESTful-based data-logger
This archive provides an example of a RESTful-based data-logger to be deployed on an embedded device acting as an intelligent edge node in large connected networks.
Through a developed web service application based on the Tornado web framework, data can be easily inserted and retrieved from a MongoDB instance by remote devices.
In the tutorial the application is proposed as a Docker-based solution in which each component is run in a separate container.
Docker Compose is used to simplify the build of custom Docker images, their deployment, and configuration.
The application can be easily tested on any device which supports Docker and Docker Compose, be it a PC or an embedded device.
PyQt application
This archive provides a PyQt reference application . The Wayland graphic server is abstracted as resource to be passed to a Docker image in which the application is deployed.
In the Dockerfile the reference buster-slim image is used as a starting point, then python3 and all dependencies necessary to execute Qt applications are installed. Wayland backedn has been chosen because the only one available for all Variscite SoMs.
GStreamer application
This archive provides a Gstreamer test application . The Wayland graphic server is abstracted as resource to be passed to a Docker image in which the application is deployed.
In the Dockerfile the reference buster-slim image is used as a starting point, then gstreamer1.0 and all dependencies necessary to execute GStreamer applications are installed. Wayland backend has been chosen because the only one available for all Variscite SoMs.