Meer informatie over Docker environment

In deze opdracht gaan we werken met environment variabelen binnen Docker Compose. Environment variabelen zijn zeer handig om instellingen, zoals gebruikersnamen, wachtwoorden, database-connectionstrings, API-sleutels, en meer, op een centrale locatie op te slaan.

Opdracht 4: Docker environment

Stap 1: Open de directory “Docker-Demo-Project/studentversie/opdracht4.`

Stap 2: Open het docker-compose.yaml document.

Stap 3: Voeg de onderstaande regel toe aan het docker-compose.yaml bestand:

    environment:
      - Title=
      - SubTitle=
      - ConnectionString=

Stap 4: Pas de waardes van de environment variabelen aan naar iets leuks. Bijvoorbeeld:

    environment:
      - Title=Docker Workshop | opdracht 4
      - SubTitle=Deze waarde komt direct uit de docker-compose.yaml
      - ConnectionString=DataSource=app.db;

Stap 5: Open een CMD/Terminal en navigeer naar de directory van Docker-Demo-Project/studentversie/opdracht4.

Stap 6: Run de volgende commando in je CMD/Terminal om je docker containers te builen en op te starten.

docker compose watch

Stap 7: Ga naar http://localhost:8080/ en kijk of de website wordt ingeladen.

In dit voorbeeld project worden de waardes van de environment direct getoond op de pagina. Dit komt omdat in HomeController de waardes worden uitgelezen en in de ViewModel worden opgeslagen. Dit zorgt ervoor dat home.cshtml toegang heeft tot de environment variabelen. Afhankelijk van de variabelen en de programmeertaal kan het uitlezen van de variabelen verschillen.

ppublic IActionResult Index() {
    HomeModel model = new HomeModel();
    model.Title = Environment.GetEnvironmentVariable("Title");
    model.SubTitle = Environment.GetEnvironmentVariable("SubTitle");
    model.ConnectionString = Environment.GetEnvironmentVariable("ConnectionString");

    return View(model);
}

In de praktijk zou dit niet snel gedaan worden. Environment variabelen worden, zoals eerder aangegeven vaak gebruikt voor API keys of database connection strings.

Stap 8: Voeg een nieuw environment variabel toe aan docker-compose.yaml.

  • Bijvoorbeeld: - MijnEigenRegel=

Stap 9: Open de CMD/Terminal waarin je bij stap 6 docker compose watch hebt uitgevoerd en stop het actieve commando door ctrl + c tegelijk in te drukken of door de CMD/Terminal te sluiten.

Stap 10: Stop of verwijder de actieve docker containers, zoals je bij opdracht 3 > stap 12 ook hebt gedaan.

Stap 11: Open het voorbeeld project uit de map opdracht4 in een code editor zoals Visual Studio of Rider.

Stap 12: Open de Index methode in de HomeController.cs (Controllers/HomeController/Index).

Stap 13: Voeg een nieuwe regel toe aan de methode.

  • Bijvoorbeeld: model.MijnEigenRegel = Environment.GetEnvironmentVariable("MijnEigenRegel");

Stap 14: Open Index.cshtml (Views/Home/Index.cshtml).

Stap 15: Voeg een nieuwe regel toe aan de pagina.

  • Bijvoorbeeld: <p>@Model.MijnEigenRegel</p>

Stap 16: Sla alle wijzigingen op een kijk of je nieuwe regel op de website wordt getoond.

Gelukt

  • Het is gelukt om environment variabelen toe te voegen aan de docker-compose.yaml
  • Het is gelukt om de variabelen binnen het voorbeeld project te gebruiken