Skip to content

Startseite

Diese Informationssammlung beschreibt das von mir eingesetzten Verfahren zum Aufsetzen eines Linux Servers mit Anwendungen in Docker Containern. Hauptsächlich handelt es sich in meinem Fall um webbasierte Anwendungen. Diese werden mit einem Reverse Proxy (Traefik als Docker Container, oder nginx auf dem Host) erreichbar gemacht.

Lokales HTTP Routing

Nachdem die Anfragen den Reverse Proxy auf unserem eigenen Host erreicht haben, werden diese je nach verwendetem Reverse Proxy über lokal gebundene Ports oder Docker Labels an den Container weitergeleitet, der den Dienst bereitstellt.

Verzeichnisstruktur

Jeder bereitgestellte Dienst erhält zwei Verzeichnisse:
1. Im Verzeichnis /home/admin/<service> liegt die Containerdefinition (docker-compose.yml),
2. die Daten des Dienstes werden im Verzeichnis /srv/<service> gespeichert.

Umgebungsvariablen

Schützenswerte Umgebungsvariablen (Passwörter, API Tokens, ...) werden nicht in der Containerdefinition abgelegt, sondern in einer separaten env-Datei, um die Gefahr einer Offenlegung dieser (z. B. beim Teilen des Bildschirms) zu reduzieren. Diese werden entsprechend des Container-Namen im docker-compose Kontext benannt.

Im folgenden Beispiel-Dienst (service: example, service_name: example_srv) würde die env-Datei unter dem Pfad /home/admin/example/.example_srv.env angelegt werden.

# /home/admin/example/docker-compose.yml
services:
  example_srv:
    image: ...
    env_file: .example_srv.env