INHOUDSOPGAWE:

Bou Docker -beeld vir Raspberry Pi: 7 stappe
Bou Docker -beeld vir Raspberry Pi: 7 stappe

Video: Bou Docker -beeld vir Raspberry Pi: 7 stappe

Video: Bou Docker -beeld vir Raspberry Pi: 7 stappe
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, November
Anonim
Bou Docker -beeld vir Raspberry Pi
Bou Docker -beeld vir Raspberry Pi

Hierdie instruksies wys hoe u 'n Docker -beeld vir Raspberry Pi kan bou.

Stap 1: Waarom Docker?

U kan Raspberry Pi (RPi) gebruik om baie dinge te doen, klein webbediener, AI -assistent, robotika …

Baie projekte wat u wil probeer, maar die pynpunte is:

Tyd om te bou

RPi is nie lus vir verwerkingskrag nie, en die SD/USB -skyf het die IO -snelheid beperk. Gebruik 'n geskikte installeer -pakket vir alle afhanklikheid benodig 'n uur en die bou van die bron verg meer ure. Veral vir AI -verwante projekte, moet u meer as tyd wag om te probeer.

Weergawekonflik

Almal probeer baie projekte in een RPi. As u 'n projek probeer het en na 'n ander een wil oorskakel, is daar moontlik 'n boufout wat veroorsaak word deur die weergawe van afhanklikheidsbiblioteke met die vorige projek. Sommige biblioteke het 'n paar jaar gelede opgehou ontwikkel en is afhanklik van 'n paar ou biblioteke. Daarteenoor was die aktiewe projek afhanklik van die nuutste biblioteke. Beide projekte kan nie op dieselfde SD/USB-skyf bestaan nie?

Beeldrugsteun

Aangesien sommige projekte nie saam kan bestaan nie, koop eenvoudig meer SD/USB-skyf om elke projekbeeld afhanklik te hou. As geld nie beperk is nie ?. Maar dit vergroot die probleme met lêer-/beeldbestuur, soms moet u SD/USB ruil en baie keer opstart om uit te vind wat u wil hê.

Moeilik om te deel

As u u projek opgestel het en die bron met vriende wil deel, kan u vriende die terugvoer van die bou misluk. Verspreiding/biblioteke weergawe te oud of te nuut, bou parameters en 'n paar truuks. U moet die tyd gebruik om ander probleme op te los, maar om nie die projek self te ondersteun nie.

Bogenoemde pynpunte is my ervaring in hierdie paar jaar. Docker kan die meeste daarvan help.

Docker begin bou deur 'n voorafgeboude ouerbeeld te kies. Bv. debian: jessie-slim begin van 'n ou stabiele Debian liggewigverdeling; node: 10-buster-slim begin vanaf die ligte gewigverdeling van Debian met Node.js 10 geïnstalleer. Die voorafgeboude beeld kan baie tyd bespaar om die beeld te flits, opdaterings te kry en afhanklike biblioteke te installeer. Elke projek kan begin met verskillende bedryfstelselweergawes, runtime -weergawes en biblioteke. As u klaar is met die ontwikkeling van u eie projek, kan u die Docker -beeld na die docker -hub stoot en met almal deel. U kan alle projekdata op dieselfde SD/USB hou (data moet gereeld rugsteun na ander media). Om die plaaslike berging te stoor, kan u selfs die Docker -beeld skoonmaak as u dit nie gebruik nie, en u kan dit altyd weer uit die Docker -hub trek.

Stap 2: Docker -bokoste

Docker het een virtualiseringslaag bygevoeg, dit is 'n bron van kommer. Ek het nie te veel getoets oor die Docker -bokoste nie. Die meeste gegoogle resultate beweer 'n baie lae koste en ek het hierdie dokument gevind oor 'n paar verwante navorsing:

domino.research.ibm.com/library/cyberdig.n…

Stap 3: Installeer Docker

Hardloop eenvoudig:

curl -sSL https://get.docker.com | sh

Verw.:

www.raspberrypi.org/blog/docker-comes-to-…

docs.docker.com/get-started/

Stap 4: Bou Docker -beeld

Vind die amptelike gids vir die bou van docker -beeld:

docs.docker.com/get-started/part2/

Ek het 2 projekte wat Docker gebruik, u kan die Dockerfile as 'n verwysing vind:

BanateCAD benodig Lua -runtime en 'n paar Lua -biblioteke. Slegs Lua 5.1 kan met alle vereiste Lua -biblioteke versoenbaar wees, maar dit is die produk van 2006. Die nuutste Debian -verspreiding wat Lua 5.1 -sukses kan bou, is Jessie (die weergawe voor die huidige Debian -ou stal). Ek het dus 'n Lua 5.1 -omgewing Docker Image gebou om dit te bestuur

github.com/moononournation/BanateCAD/tree/…

OpenCV is 'n aktief ontwikkelende projek; die bronkode hang af van die nuutste biblioteke en samesteller. Dit is dus 'n baie groot kans om 'n mislukte handtekening van biblioteke te bou, samestellerweergawe, afhanklikheidskonflik … Ek wil opencv4nodejs gebruik om 'n eenvoudige app te maak en het nie die nuutste funksies nodig nie. Dus, toe ek 'n manier vind om die sukses van opencv4nodejs te bou, wil ek dit in 'n Docker -beeld vries en my werklike programkodering doen

github.com/moononournation/face-aware-phot…

Stap 5: Ontwikkeling Bou spoed teenoor beeldgrootte

Ontwikkeling Bou spoed teenoor beeldgrootte
Ontwikkeling Bou spoed teenoor beeldgrootte
Ontwikkeling Bou spoed teenoor beeldgrootte
Ontwikkeling Bou spoed teenoor beeldgrootte

U het moontlik gevind dat my gesigbewuste foto-osd-projek 2 weergawes van Dockfile het:

github.com/moononournation/face-aware-phot…

Terwyl ek ontwikkel is, hou ek van die gesplete RUN -opdrag so klein as moontlik, en ek stel die RUN -opdrag waarskynlik in die laaste stap. Dus, vir elke konstruksie vir ontwikkelingsverandering, kan ek die vorige gebou laag soveel as moontlik gebruik en baie bou spoed bespaar.

Daarteenoor kombineer ek alle RUN -opdragte in een voor vrylating. 'n kleiner laag kan die grootte van die Docker -beeld baie verminder. My gesig-bewuste-foto-osd-projek kan as voorbeeld meer as 100 MB verminder.

Stap 6: Multi Arch -beelde

Multi Arch -beelde
Multi Arch -beelde

Soos voorheen genoem, is RPi nie lus vir verwerkingskrag nie. Die gebruik van RPi build Docker -beeld is miskien nie 'n goeie keuse nie, veral as u enigste RPi ander projekte uitvoer.

Gebruik 'n x86 -rekenaar en kan u ook help om die Docker -beeld te bou; vind meer besonderhede hier:

www.docker.com/blog/multi-arch-images/

eenvoudige 2 opdragte kan x86 en ARM Docker Image parallel bou:

docker buildx skep --gebruik

docker buildx build-platform linux/amd64, linux/arm -t moononournation/debian-imagemagick-lua-meshlab: 1.0.1 --push.

Multi Arch kan 'n multi -platformbeeld bou met dieselfde Docker -afbeeldingsetiket, sodat u projek naatloos in verskillende masjiene kan werk. bv.

docker run -it moononournation/debian-imagemagick-lua-meshlab: 1.0.1

Maak nie saak of u die bogenoemde opdrag op RPi of u x86 -rekenaar uitvoer nie, u kan 'n Lua -runtime -omgewing kry.

Stap 7: Gelukkige RPi

U kan nou u RPi -projek makliker ontwikkel en deel!

Aanbeveel: