Recentemente sono stato esposto a Docker e ho scoperto che si trattava di uno strumento eccellente per rendere le implementazioni di produzione molto meno rischiose rispetto a quello a cui ero abituato (proveniente da un mondo embedded, incorporato come "Linux portato su PCB braccio personalizzato con completa le immagini di sistema cross-build ").
Tuttavia, ho subito sperimentato che la creazione di immagini Docker è in qualche modo un processo di "esecuzione runtime steps" invece di costruire in termini uno fa un rootfs
usando Yocto. Questo era uno stopper perché impedisce la compilazione incrociata. Inoltre, non esiste alcuna nozione di sysroot sulla macchina host in questo approccio.
Ho visto un servizio cloud che offre opzioni per costruire immagini Docker per Arm, ma non mi sento a mio agio con l'idea, dato che di nuovo manca il sysroot e inizia a sentirsi come una soluzione hacky ... in più cosa se tu passare a una piattaforma di processore diversa, una per la quale è necessario eseguire la compilazione incrociata ...
Quindi mi stavo chiedendo, questo aggiornamento di produzione privo di rischi è una cosa meravigliosa, c'è sicuramente qualcuno che ci pensava già, ci sono tutti questi smart box e router che devono essere aggiornati da remoto, sicuramente hanno una sorta di " supervisore con contenitori "architettura per evitare che il sistema muoia in caso di interruzione di corrente o di un bug critico dell'applicazione, ma il più lontano che ho ottenuto è stato un piccolo lwm article solo per flirtare con questa idea.
UPDATE: Ho trovato un nuovo riferimento a qualcosa che sembra mirare in quella direzione.
Mi piacerebbe conoscere gli approcci che hai visto finora affrontando questo problema e quali tecnologie?
Hai usato un bootloader failsafe che avrebbe aspettato una nuova immagine completa (kernel e rootfs) nel caso qualcosa fosse andato storto?
Qualche idea di creare contenitori userspace con sistemi di compilazione?