Modul 324 - DevOps

Woche 3

Lokales Entwickeln

Modul 324

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Die Idee ist:

alle haben die gleiche Entwicklungsumgebung, selbst auf Produktion!

🥳

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Verwendete Tools

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Repository klonen

  1. Unter Code Das grüne Dropdown <> Code öffnen

  2. Die SSH Url kopieren

  3. oder Sofern GitHub Desktop installiert wurde Open with GitHub Desktop wählen.

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

GitHub Desktop

Github Desktop ist ein Grafisches Tool um git repositories zu verwalten. In Github Desktop kann man mit einem GUI Commiten.

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Öffnen in VS Code

  1. File -> Open folder

  2. Das frisch geklonte repository auswählen

  3. Es sollte ungefähr wie rechts aussehen

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

VS Code Plugins

Core

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Öffnen in Devcontainer

VS Code fragt automatisch nach, ob das Projekt im Container geöffnet werden soll sofern "Devcontainer" installiert wurde.

  • "Reopen in Container" klicken und warten

  • Nun wird der Container gebaut und gestartet. Das kann einige Minuten dauern!

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Devcontainer start

  1. Wen auf "Connecting to Dev Container (Show Logs)" geklickt wird

  2. erscheint folgender Log. Es zeigt wie das "Image" gebaut wird

  3. Unten rechts ist ersichtlich ob VS Code in einem Container geöffnet wird/wurde.

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Devcontainer Terminal

  1. Mit + kann ein neues Terminal geöffnet werden, (z.B. zsh)

  2. Nun existiert ein ubuntu Terminal im Container.
    (selbst unter Windows)

  3. Die Dateien sind "gemountet" unter /workspace

BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Docker Compose

Infos unter Docker Compose

  • Es verwendet das .devcontainer/Dockerfile
  • Momentan wird ./src zum Nginx gemountet
  • ./local/.env Environment Variablen werden auch im Container hinzugefügt
  • Der Port 3000 wird exposed.
# docker-compose.yml
services:
  nginx:
    build:
      context: .
      dockerfile: .devcontainer/Dockerfile
    container_name: devcontainer
    ports:
      - "3000:3000"
    env_file: ./local/.env
    volumes:
      # sync workspace
      - .:/workspace:cached
      ...
BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Installierte Tools im Container

Im Container sind folgendes Tool vorhanden

Optional (Auskommentiert):

  • AWS Cli um nach AWS zu connecten
  • Terraform um in AWS die Infrastruktur hochzufahren
  • Kamal um ein Dockerfile zu deployen
BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Installiere Programmiersprachen mit mise

Java

mise use java@lts -g
openjdk version "24-loom" 2025-03-18
OpenJDK Runtime Environment (build 24-loom+4-42)
OpenJDK 64-Bit Server VM (build 24-loom+4-42, mixed mode, sharing)
mise java@24.0.0-loom+4-42 ✓ installed
mise /workspaces/bbzbl-modul-324-nginx/.mise.toml tools: java@24.0.0-loom+4-42

NodeJs

mise use node@lts -g
mise node@22.7.0 ✓ installed
mise /workspaces/bbzbl-modul-324-nginx/.mise.toml tools: node@22.7.0
BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen
Modul 324 - DevOps

Installiere Programmiersprachen im Dockerfile

Wir ein Container neu gestartet, müssen die Programmiersprachen neu installiert werden.

  • Durch das .devcontainer/Dockerfile können Sprachen beim erstellen vom Image installiert werden.
  • So wird ermöglicht, dass alle Teammitglieder die gleiche Umgebung besitzen.
  • Hier ein Beispiel für nodejs
RUN mise use node@lts -g
BBZBL / Lukas Hodel / DevOps-Prozese mit Tools unterstützen