Kmom04: En webbserver i Docker

By . Latest revision .

Nu vet vi hur vi bygger en egen image med hjälp av Docker. Vi har också gått igenom hur vi kan strukturera ett Bash-script som även exekveras inuti en container. Vi tar ett steg till och tittar på hur vi kör en webbserver inuti Docker. I det här kursmomentet får du välja om du vill leka med Apache/php, Flask/Python eller Nodejs/JavaScript. Huvudsaken är att du får igång en server med en router som kan serva en JSON-fil. Vi jobbar även vidare med Bash - såklart.

(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 04.

#Övningar & Uppgifter

(ca: 15-20 studietimmar)

#Övningar

Genomför följande övningar.

  1. Läs igenom guiden “Hantera applikationer”. Välj sedan ett språk du vill använda.

  2. Se i guiden hur vi kan jobba med miljövaribler

  3. Glöm inte bort guiden kom igång med Bash.

#Uppgifter

Dessa uppgifter skall utföras och redovisas.

  1. Gör uppgiften “Webbserver i Docker”. Spara arbetet i mappen server/.

  2. Gör uppgiften “Bash-script som testar serverns routes”. Spara arbetet i mappen client/.

  3. Lägg till redovisningstexten i din me-sida.

#dockerhub.bash

  1. Skapa ett Bash-script, kmom04/dockerhub.bash, som kör din publicerade image.

  2. Mappen med JSON-filen ska servas via en volym där sökvägen tas emot som argument. Utgå alltid från den egna kontexten ($(pwd)). Man ska till exempel kunna göra på följande sätt:

$ pwd
/home/klw/dbwebb-kurser/vlinux/me/kmom04
$ bash dockerhub.bash "server/data"
$ pwd
/home/klw/dbwebb-kurser/vlinux/me/kmom04/server
$ bash dockerhub.bash "data"
  1. Containern ska kunna nås via miljövariablen DBWEBB_PORT om den är satt - annars port 8080 (-p).

  2. Containern ska köras i bakgrunden (-d).

  3. Containern ska ha namnet “myserver” (–name).

Har du fått med alla delar?

#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 kmom04

#Resultat & Redovisning

(ca: 1-2 studietimmar)

Läs instruktionen om hur du skall redovisa.

Se till att följande frågor besvaras i redovisningstexten.

  • Vilken väg valde du för servern?
  • Hur kommer det sig att du valde det?
  • Gick det bra med Docker?
  • Hänger du med på koncepten kring klient och server?
  • Strukturerade du Bash-scriptet annorlunda jämfört med förra kursmomentet?

#Revision history

  • 2023-09-12: (C, lew) Uppdaterad inför HT23.
  • 2022-06-22: (B, lew) Uppdaterad inför HT22.
  • 2019-03-26: (A, lew) Ny inför HT19.

Document source.