Docker na Raspberry

Skaut wchodzi w fazę umieszczania! Deployment na urządzeniu małym jak zabawka jest możliwy i bez Dockera. Ale jakże pięknie jest to sobie ułożyć w mikro-devopsowym stylu. Odpalmy więc Pythona z MałąCondą na małym urządzeniu!

Pomysł na obraz

Docelowo chciałbym w obrazie umieścić wszystko to co będzie potrzebne. Chcę tam zainstalować bazę (mongo) a także wszelkie potrzebne połączenia.  Ale interfejs webowy też się przyda (o tym jaki to prosty web-silnik to może kiedyś niedługo). Jak to umieścić na Raspberry Pi 3?

Raspberry wspiera dockera!

Rym bardzo nie-zamierzony.  Właściwie powinienem powiedzieć inaczej Docker od nie dawna wspiera ARM na którym chodzi to małe para-komputerowe cudeńko. Oto wpis jakbyś nie wierzył.  Dlaczego uruchamiać tak wielką machinę jak wieloryb na małym pudełeczku? Bo mały wieloryb potrafi też być bardzo lekki!

docker info.PNG

I jest lekki. Chodzi jak strzała. No może nie buduje jak mój nowy ultra-nabytek, ale jak na komórko-podobne cudactwo chodzi całkiem nieźle.

Jak na razie mój Dockerowy plik wygląda tak.

Robi wszystko to co potrzeba!

  • ściągamy projekt i rozpakowujemy z githuba
  • instalujemy zależności przez conda (ML) i pip (reszta)
  • definiujemy domyślną komendę i wystawiamy port dla świata

Jak na swojej małej maszynce też masz Dockera na ARM to wystarczy, że:

  1. sklonujesz mój projekt z Githuba
  2. przebudujesz obrazy (rpiconda, rpiscout)
  3. uruchomisz kontener (rerun)

Korzysta z mojego własnego parenta którego zbudowałem na jedynym jak na razie działającym obrazie debian-jessie z takiego źródła.

Demo

To-to dockerowe wystawia port 5000 na którym chodzi gorliwie lekki Flask.  Na razie to-to nie robi nic, ale słucha, moja przeglądarka to potwierdza:

webapp rpi.PNG

Piknie!

Co prawda na razie nie robi nic oprócz pokazania strony, ale gdy tylko zmieszczę tam Mongo to puścimy testy integracyjne i się okaże!