Med Docker på Raspberry Pi (4 / 5 steg)

Steg 4: Skapa våra Docker bilder



Kan skapa en bild som bygger på Raspbian Jessie distribution. Även om våra Pi är konfigurerad med Arch Linux, kan vi använda någon annan hallon-baserad OS som basavbildningen för vår tjänst. Jag kommer att följa anvisningarna från Adafuit NodeJS inbäddad utveckling.

Tanken bakom Docker är att skapa bilder som kan reproduceras när som helst. Eftersom projektet använder NodeJS, kan skapa en NodeJS-bild bara för Raspberry Pi. Senare ska vi skapa programmet i en annan Docker bild som kommer att grundas på denna bild.

Nod JS bild

Skapa en ny katalog som heter "rpi-nodejs" och ändra in i den. Nu skapa en fil med namnet "Dockerfile" med följande innehåll:

< p > från harts/rpi-raspbian:jessie < br > ANSVARIGE vipercmd < br >
KÖRA echo "deb < en href ="http://apt.adafruit.com/raspbian/"rel ="nofollow"> http://apt.adafruit.com/raspbian/ < /a > wheezy main" >> /etc/apt/sources.list & & \
apt-get update & & \
DEBIAN_FRONTEND = icke-interaktiv apt-get install -y--force-ja nod & & \
apt-get clean < /p >

Docker måste instrueras att läsa denna Dockerfile och skapa en bild. Detta görs med följande kommando:

$ docker Bygg -t rpi-nodejs.

Detta kommer att bygga en NodeJS bild baserat på innehållet i aktuellt "." katalogen. Bilden kommer att namnges "rpi-nodejs"

Dessa instruktioner är samma som det Adafruit documentation med några genvägar. Istället för att använda curl för att komma med i Adafruit databasen, La jag bara den till sources.list. Och slutligen som Docker bilder köra som root, bilden kommer inte att kräva GPIO-Admin projektet att vara en del av bilden. Du kan se denna bild i din lokala Docker bild arkivet:

$ docker bilder < br > databasen TAGG-ID skapas virtuella BILDSTORLEK < br > rpi-nodejs senaste f9a415a3f49b 2 minuter sedan 151.1 MB < br > harts/rpi-raspbian jessie f9b109c91ac9 3 månader sedan 119.7 MB

Ansökan bild

Nu kan skapa en bild som använder vår nya NodeJS bild för vår ansökan. Fortsätter med instruktionerna vi behöver installera och NPM paketet och Lägg till vår källkod.

Flytta tillbaka till den överordnade katalogen för "rpi-nodejs" och skapa en ny katalog som heter "rpi-onoff" och ändra in i den. Först skapa en ny arkivera benämn "test.js" med följande innehåll:

knappen är attaced till stift 17, ledde till 18 < br > var GPIO = require('onoff'). Gpio,
LED = nya GPIO (18, "ut"),
knappen = nya GPIO (17, 'i', 'båda'); < br >< br > / / Definiera callback-funktionen
fungerar ljus (err, statliga) {

Kontrollera tillståndet i knappen
1 == trycker på 0 == inte pressad
IF(State == 1) {
Aktivera LED
led.writeSync(1);
} annat {
Inaktivera LED
led.writeSync(0);
}

} < br >< br > / / passera callback-funktionen till < br > / / som det första argumentet till watch() < br > button.watch(light);

Och nu skapa en annan fil heter "Dockerfile" med följande innehåll:

FRÅN rpi-nodejs < br > ANSVARIGE vipercmd < br >
KÖRA npm installera onoff < br >
WORKDIR /app
ENTRYPOINT ["nod", "/ app/test.js"] < br >
KOPIA test.js /app/

Den första raden i Dockerfile påstår att denna bild kommer att grundas på vår nyinrättade rpi-nodejs bild. Detta är ett exempel på återanvändning av gemensamma bas bilder för olika projekt. Fördelen är att alla dina program/tjänst bilder är baserade på samma förälder.

Den springa lina kommer i beroendet för onoff via Pakethanteraren npm.

Slutligen skapas en katalog i bilden och skriptet test.js kopieras till det. Startadressen berättar Docker att när bilden avrättades och göras till en container att köra test.js skript med hjälp av noden.

Att kompilera och köra denna bild:

$ docker bygga -t rpi-onoff. < br >$ docker kör--privilegierade -d rpi-onoff

Alternativet "privilegierade" måste anges eftersom denna bild kräver R/W tillträde till GPIO stift. Nu när programmet körs, tryck på knappen och titta på LED turn på och av.

Se Steg
Relaterade Ämnen

Datarhei/Restreamer - Installation OSX och Windows med Docker Toolbox (Kitematic)

Vad är detta Instructables?Det snabbaste sättet att använda Datarhei/Restreamer är att använda verktygslådan Docker aka Kitematic.Det finns bara några steg för att få den Restreamer som körs i din webbläsare.De viktigaste stegen är: Ladda ner och ins...

Komma igång med Phidgets på Raspberry Pi

Detta instructable är en anpassning av en av vår blogg inlägg .Innan du börjar, kommer du vill ha några saker på plats. Du behöver:En fungerande Raspberry Pi (uppenbarligen).En separat USB-hubb, eftersom Raspberry Pi är inte kan leverera tillräckligt...

Hemautomation med nod js, raspberry pi och heimcontrol

I guiden kommer att göra beskriver hur du använder heimcontrol plattform (är NodeJs program för hemautomation öppen källkod under MIT licens)Några av där funktioner:Lyhörda : responsive design ger dig bekväm kontroll hem enheter använda din smartphon...

Kör Linux Terminal på Windows med DHCP och Raspberry Pi

Vad du behöver:Dator med Windows installeratRaspberry Pi (jag rekommenderar B + men någon kommer att fungera)SD-kort med Raspberry Pi bild utarbetatsEthernet-kabelStrömkälla för Raspberry PiDHCP-servern (finns här)PuTTY (finns här)Steg 1: Förbered DH...

BrickPi Bookreader: Digitalisera böcker med Mindstorms och Raspberry Pi

För några månader sedan, gjorde vi en bok läsaren drivs av den BrickPi som hade förmågan att läsa sidor från din Kindle. Det fanns en stor respons till projektet. Men vad alla egentligen ville ha var en bookreader som kunde läsa en riktigt papper bok...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

Jorden världen roterar med Arduino eller Raspberry Pi kontrollerade Stepper Motor

Detta instructable beskriver hur du uppgraderar din världen till en motoriserad version. Det ser otroligt bättre på hyllan när det sakta roterar, och någon demonstration med dina barn (att förklara den dag/natt cykeln eller årstiderna) vinner i intre...

Temperatur och luftfuktighet övervakning med SHT25 och Raspberry Pi

Vi har nyligen arbetat med olika projekt som krävs för temperatur och luftfuktighet övervakning och sedan insåg vi att dessa två parametrar faktiskt spela en nyckelroll i att ha en uppskattning av den arbetande effektiviteten i ett system. Både på de...

Piano trappor med Arduino och Raspberry Pi

Vem älskar inte musik? Dessa Piano trappor är en interaktiv och relativt smidig musikaliska installation som kan tillämpas på i princip alla trapphus. Jag byggde dem för HackPrinceton tillsammans med mina vänner Erica Portnoy och Vincent Castaneda, o...

Trådlös 3D utskrift & övervakning med Astroprint och Raspberry Pi

Detta Instructable skrivs att visa dig hur du konfigurerar din befintliga 3D-skrivare för att skriva ut och övervaka trådlöst via Astroprint programvara. Du kan övervaka det från hem och var som helst med din Smartphone, Tablet PC, bärbar dator med a...

Hur du ställer in OSMC med Hyperion på Raspberry Pi med WS2812b led-strip

Ibland engelska jag mycket bra, ibland nr...Första sakerna första. Detta är min första instructable och engelska inte är mitt modersmål, så snälla, inte vara för hård mot mig. Detta är inte om hur man bygger den ram, som är lätt. Det handlar om insta...

Förena Automounter kartor med LDAP i Raspberry Pi

IntroduktionFörutom möjligheten att lagra lösenord och användarkonton, kan LDAP också lagra automounter kartor. Detta gör underhåll av automounter karta snabbt och enkelt.RäckviddDetta instructable visar hur du:Installera automount-LDAP relaterade fi...

Läs/emulera fjärrkontroller med Arduino och Raspberry Pi

Fjärrkontroller är överallt. De är gränssnittet till din TV, musiksystem och vad-inte. Du har kanske några extra dem liggande, ödelagda på nedläggningen av deras bättre halvor. Muntra dem upp och Lägg tillbaka dem i bruk! (Skynet godkänner...)Här är...

Humanoid Robot tonande kontrolleras med Arduino Mega, raspberry Pi och 1Sheeld

Humanoid Robot är en robot som formas i form av en människa. En humanoid robot används inom många olika områden såsom utbildning för små barn, på området marknadsföring för företag, forskning och utveckling verktyg, underhållning och för uppgifter so...

Mätning av Acceleration med H3LIS331DL och Raspberry Pi

H3LIS331DL, är en linjär lågenergi-högpresterande 3-axlig accelerometer tillhör familjen "nano", med digital I²C seriellt gränssnitt. H3LIS331DL har användaren valbara full skalorna i ±100g/±200g/±400g och det är kan mäta accelerationer med utgå...

Komma åt din Raspberry Pi noll från första början med WiFi använda WPS

Med den nya Raspberry Pi noll färska på marknaden hade vi på Max2Play att hitta ett snabbt och enkelt sätt att göra våra bild förenlig med detta lilla underverk. Men att bara ha den igång Max2Play räcker inte. Eftersom nollan inte har en LAN-port, ha...

Raspberry Pi Cloud IP-kamera med POE

Jag blev inspirerad av scavix's arbete med instructable Raspberry Pi som låg-kostnad HD övervakningskamera så jag bestämde mig att göra min egen Raspberry PI-baserad IP-kamera som också har POE och stödjer integration med Google Drive.Den video ström...

Raspberry Pi och Arduino: bygga tillförlitliga system med WatchDog timer

Sammanfattning: I detta Instructable titta vi på hur man bygger mer tillförlitliga datorsystem med WatchDog timer. Vi visar hur du ställer in och använder Raspberry Pi och Arduino inre watchdog timer. Vi förklarar också varför en extern WatchDog Time...

Komplett DIY Raspberry Pi väderstation med programvara

Tillbaka i slutet av februari såg jag det här inlägget på webbplatsen Raspberry Pi.http://www.raspberrypi.org/School-Weather-station-...De hade skapat Raspberry Pi väderstationer för skolor. Jag ville helt en! Men på den tiden (och jag tror fortfaran...