...
Untergeordnete Seiten (Anzeige untergeordneter Seiten) |
---|
|
Umgebungsvariablen
Umgebungsvariablen haben mehrere wichtige Zwecke:
- Konfiguration: Sie ermöglichen die Konfiguration innerhalb des Containers. Beispielsweise können Datenbank-URLs, API-Schlüssel oder andere Konfigurationseinstellungen, die sich je nach Umgebung (Entwicklung, Test, Produktion) unterscheiden können, über Umgebungsvariablen festgelegt werden.
- Geheimnisverwaltung: Sensible Informationen wie Passwörter oder Tokens können als Umgebungsvariablen übergeben werden, anstatt sie hart in das Docker-Image oder den Quellcode einzukodieren. Dies verbessert die Sicherheit und Flexibilität.
- Anpassung von Verhalten: Umgebungsvariablen können verwendet werden, um das Verhalten der Anwendung anzupassen. Beispielsweise kann ein DEBUG-Modus aktiviert werden, um zusätzliche Log-Ausgaben zu erhalten, ohne den Code zu ändern.
...
Codeblock |
---|
|
version: '2.4'
services:
application:
image: [...]:latest
environment:
MYSQL_HOST: database.${COMPOSE_PROJECT_NAME}
[...] |
$COMPOSE_PROJECT_NAME
Die Variable hat einen besonderen Stellenwert. Darüber wird der Docker-Namespace organisiert. Domain und Ordner werden darüber verwaltet und zusammengehalten.
Internes Netz und externes Netz
Docker verwaltet unterschiedliche Netzwerke. Dazu gehört auch ein Netzwerk für den Namespace des Projekts. Um nun Container in das Projekt zu integrieren, muss das in der docker-compose.yml entsprechend notiert werden. Folgend der schematische Aufbau für diesen Fall.
Codeblock |
---|
|
cache:
image: [...]
networks:
internal:
aliases:
- your-url.${COMPOSE_PROJECT_NAME}
ports:
- "1234" |
image
: Hier sollte der Name des Docker-Images angegeben werden. Die Platzhalter [...]
sollten durch den tatsächlichen Namen des Images ersetzt werden.
networks
: Unter networks
wird das Netzwerk definiert, dem der Container zugeordnet werden soll. Hier verwenden Sie internal
, was darauf hindeutet, dass es sich um ein internes Netzwerk handelt. Stellen Sie sicher, dass dieses Netzwerk in der docker-compose.yml
unter dem Abschnitt networks
definiert ist.
aliases
: Die Verwendung von aliases
unter dem Netzwerk internal
ist korrekt. Hier wird der DNS-Alias für den Container innerhalb des Netzwerks festgelegt.
ports
: Der Port 1234
wird nach außen freigegeben. Dies sollte der Port sein, auf dem die Anwendung im Container läuft. Die Syntax "1234"
bedeutet, dass der Port 1234
des Containers auf denselben Port des Host-Systems abgebildet wird. Sie können auch eine andere Port-Konfiguration verwenden, z.B. "HostPort:ContainerPort"
.
Codeblock |
---|
|
networks:
internal:
external:
name: shared |
Abhängigkeiten zwischen Containern