Kmom05: Docker network
Nu har vi kontroll på hur vi kan hantera en webbserver i Docker. Vi tar ett steg till in i Bashprogrammeringen och bygger ett script som kan prata med en server och inte bara skicka requests.
Du kommer få en färdig server, skriven i Node.js, och ett RESTful API till servern. Servern implementerar en maze. Servern är färdig och du kan testköra den via kommandot curl.
Din uppgift är att bygga en bash-klient till servern, enligt en kravspecifikation. Din klient skall använda servern för att lösa mazen. Vi lägger in klienten och servern i Docker-containrar och låter de prata med varandra med hjälp av “Docker network”, där vi låter Docker skapa ett eget nätverk.
Vi ska även kika lite på reguljära uttryck med hjälp av en labb.
Så är upplägget. Låt se hur bra vingarna bär. Upplägget på detta kursmomentet är “lite friare”, så vi går nästan rakt på själva uppgiften.
(Detta är instruktionen för kursmomentet och omfattar det som skall göras inom ramen för kursmomentet. Momentet omfattar cirka 20 studietimmar inklusive läsning, arbete med övningar och uppgifter, felsökning, problemlösning, redovisning och eftertanke. Läs igenom hela kursmomentet innan du börjar jobba. Om möjligt – planera och prioritera var du vill lägga tiden.)
#Video
Till kursen finns en videoserie. Titta på videorna som börjar med 05.
#Lästips
Läs lite om Docker network.
#Övningar & Uppgifter
(ca: 8-14 studietimmar)
#Övningar
Läs om “Docker network i guiden”.
Läs artikeln om “Regulära uttryck”.
Läs artikeln om “Regex med grep”.
#Uppgifter
Dessa uppgifter skall utföras och redovisas.
1. Gör uppgiften (labben) “regex 1” för att träna upp grundläggande färdigheter i reguljära uttryck och verktyget grep.
Gör uppgiften “Mazerunner i bash”. Du sparar ditt arbete under mappen
kmom05/maze/
.Lägg till redovisningstexten i din me-sida.
#dockerhub.bash
- Skapa ett Bash-script,
kmom05/dockerhub.bash
, Skriptet ska göra följande:- Skapa ett nätverk med namet
dbwebb
. - Starta upp båda containrarna med rätt options.
- Servern ska även kunna nås via webbläsaren och port 8080. (localhost:8080)
- Båda containrarna ska ha egna namn.
- Server-containern ska köras i bakgrunden.
- Klienten ska använda serverns namn. Du behöver då byta ut “localhost” i skriptet mot namnet du ger servern (om du inte redan uppdaterat det).
- Klient-containern ska starta i Bash och i den arbetsmappen du har skriptet i.
- Stoppa den/de containrar som är igång och ta bort nätverket.
- Skapa ett nätverk med namet
#Testa din inlämning
Du kan köra vissa tester på din inlämning och se om de delarna uppfyller kraven. Rättningen kommer endast genomföras om testerna går igenom.
$ dbwebb test kmom05
#Resultat & Redovisning
(ca: 1-2 studietimmar)
Läs instruktionen om hur du skall redovisa.
Se till att följande frågor besvaras i redovisningstexten.
- Hur kändes det att skriva ett litet större bash-skript? Var det något som var mer eller mindre utmanande och tidskrävande?
- Kikade du på källkoden till maze-servern? Har du några reflektioner kring den?
- Gjorde du nåt speciellt i din mazerunner som du vill lyfta fram?
- Vad tycker du om regex så här långt?
#Revision history
- 2023-09-13: (C, lew) Uppdaterad inför HT23.
- 2022-09-23: (B, lew) Uppdaterad inför HT22.
- 2019-03-26: (A, lew) Ny inför HT19.