En webbserver i Docker

By . Latest revision .

Du skall skapa en Docker image och publicera den till Docker Hub. Imagen ska vara en webbserver som ska kunna svara på en uppsättning routes och returnera JSON.

#Förkunskaper

Du har läst igenom guiden Hantera applikationer och valt ett språk du vill använda. Kika gärna på alla, då det kan göras på olika sätt.

Du har läst kurslitteraturen och skaffat dig grundläggande kunskaper om bash.

#Introduktion

I exempelmappen finns en JSON-fil som ska servas med hjälp av en router, byggd i språket du valt. Du väljer själv hur du vill sköta “routingen”.

Routes som ska stödas är:

Route Vad skall returneras
/ En presentation av de olika routesen.
/all Hela JSON-filen.
/names Namnen på alla växterna.
/color/<color> Alla växter som kan ha <color> som färg. .

JSON-filen kopierar du från exempelmappen:

# Ställ dig i kursroten
$ cp -r example/json/items.json me/kmom04/server/data/

#Krav

Du ska i den här uppgiften mestadels jobba i mappen kmom04/server/.

  1. Bygg en server som kan svara på “routsen” ovan. Alla svar ska vara JSON.

  2. Man ska kunna använda både stor och liten bokstav när det filtreras på namn/färg. Till exempel så ska både yellow och Yellow fungera.

  3. Skapa en Dockerfile Dockerfile och lägg till din server i arbetsmappen /server. Mappen data med JSON-filen ska inte kopieras in, utan ska läggas till som en volym.

  4. Publicera din image med namnet username/vlinux-server:1.0 där du använder ditt egna användarnamn. Se till så imagen är publik.

  5. Publicera imagen till Docker Hub.

  6. Publicera uppgiften enligt följande.

# Ställ dig i kurskatalogen
$ dbwebb publish server

Rätta eventuella fel som dyker upp och publicera igen. När det ser grönt ut så är du klar.

#Extrauppgift

Det finns inga extrauppgifter.

#Tips från coachen

Lycka till och hojta till i chatten om du behöver hjälp!

#Revision history

  • 2023-09-12: (C, lew) Uppdaterad inför HT23.
  • 2022-06-22: (B, lew) Uppdaterad inför HT22.
  • 2019-04-11: (A, lew) Första utgåvan inför HT19.

Document source.