docker-hello.sh

Arduino Portenta X8 · Fichier : docker-hello.sh · Langage : Bash · Usage : Lancer un conteneur Docker sur la carte (signature X8)

La X8 est la carte Arduino qui fait tourner Docker : ce script vérifie le moteur, déploie un serveur web conteneurisé avec redémarrage automatique et le teste au curl. L'app conteneurisée côtoie le temps réel Arduino.

Matériel requis

Une Arduino Portenta X8 (module ST STM32MP1 : quad Cortex-A7 Linux + double cœur Cortex-M4 temps réel, 8 Go eMMC, 2 Go LPDDR4, Wi-Fi/BT embarqués, option LTE). Aucun ; réseau pour télécharger l'image (ou registre local).

Câblage

Rien à câbler. La carte doit être sur le réseau pour pull l'image.

Fonctionnement

docker run -d détache le conteneur, --restart le relance après reboot, -p publie le port. curl valide la réponse HTTP en local.

Exécution

Côté Linux : accès SSH (USB-C routed ou réseau) sur l'image Portenta Linux, scripts bash/Python. Côté temps réel : Arduino IDE avec le core « Arduino Mbed OS Portenta X8 Boards », cœur M7 applicatif, flash via mboot depuis Linux.

Variantes

Déployer son propre service Python en conteneur, ou orchestrer plusieurs micro-services avec docker compose embarqué.

docker-hello.sh

#!/bin/bash
# Docker embarque : la signature applicative de la Portenta X8.
# Verifier la presence du moteur puis lancer une charge utile utile.

if ! command -v docker >/dev/null; then
  echo "Docker absent : activer le composant container de l'image X8"
  exit 1
fi

docker --version
docker info --format 'stockage: {{.Driver}}  noyau: {{.KernelVersion}}'

# Petit service web embarque (image ARM compatible X8).
docker run -d --name webtest --restart unless-stopped \
  -p 8080:80 nginx:alpine || {
    echo "verifier l'architecture de l'image (arm)"; exit 1; }

sleep 2
echo "Test HTTP local :"
curl -s -o /dev/null -w "code %{http_code}\n" http://localhost:8080/

echo
echo "Conteneurs : (docker ps)"
docker ps --format 'table {{.Names}}\t{{.Status}}'
# Nettoyage : docker rm -f webtest

← Retour à la fiche