Umgebungsvariablen
Sie können Umgebungsvariablen in Ihrem Container festlegen, ohne das Container-Image zu ändern, indem Sie eine der folgenden Optionen verwenden.
Sie sollten in den Einstellungen überprüfen, ob Terminal > Integriert: Umgebungsvariablen erben aktiviert ist, oder die von Ihnen festgelegten Variablen werden möglicherweise nicht im integrierten Terminal angezeigt. Diese Einstellung ist standardmäßig aktiviert.
Option 1: Einzelne Variablen hinzufügen
Abhängig davon, was Sie in devcontainer.json referenzieren
-
Dockerfile oder Image: Fügen Sie die Eigenschaft
containerEnvzudevcontainer.jsonhinzu, um Variablen festzulegen, die für den gesamten Container gelten sollen, oderremoteEnv, um Variablen für VS Code und zugehörige Subprozesse (Terminals, Tasks, Debugging usw.) festzulegen."containerEnv": { "MY_CONTAINER_VAR": "some-value-here", "MY_CONTAINER_VAR2": "${localEnv:SOME_LOCAL_VAR}" }, "remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }Wie dieses Beispiel zeigt, kann
containerEnvlokale Variablen referenzieren, undremoteEnvkann sowohl lokale als auch vorhandene Container-Variablen referenzieren.
Video: PATH in einem Dev-Container ändern
-
Docker Compose: Da Docker Compose integrierte Unterstützung für die Aktualisierung von Container-weiten Variablen bietet, wird in
devcontainer.jsonnurremoteEnvunterstützt."remoteEnv": { "PATH": "${containerEnv:PATH}:/some/other/path", "MY_REMOTE_VARIABLE": "some-other-value-here", "MY_REMOTE_VARIABLE2": "${localEnv:SOME_LOCAL_VAR}" }Wie dieses Beispiel zeigt, kann
remoteEnvsowohl lokale als auch vorhandene Container-Variablen referenzieren.Um Variablen zu aktualisieren, die für den gesamten Container gelten, aktualisieren (oder erweitern) Sie Ihre
docker-compose.ymlmit dem Folgenden für den entsprechenden Dienstversion: '3' services: your-service-name-here: environment: - YOUR_ENV_VAR_NAME=your-value-goes-here - ANOTHER_VAR=another-value # ...
Wenn Sie den Container bereits erstellt und eine Verbindung dazu hergestellt haben, führen Sie Dev Containers: Container neu erstellen aus der Befehlspalette (F1) aus, um die Änderung zu übernehmen. Andernfalls führen Sie Dev Containers: Ordner im Container öffnen... aus, um eine Verbindung zum Container herzustellen.
Option 2: Eine .env-Datei verwenden
Wenn Sie eine große Anzahl von Umgebungsvariablen festlegen müssen, können Sie stattdessen eine .env-Datei verwenden.
Erstellen Sie zuerst eine Umgebungsvariablendatei irgendwo in Ihrem Quellcodebaum. Betrachten Sie diese .devcontainer/devcontainer.env-Datei
YOUR_ENV_VAR_NAME=your-value-goes-here
ANOTHER_ENV_VAR_NAME=your-value-goes-here
Als Nächstes, abhängig davon, was Sie in devcontainer.json referenzieren
-
Dockerfile oder Image: Bearbeiten Sie
devcontainer.jsonund fügen Sie einen Pfad zudevcontainer.envhinzu."runArgs": ["--env-file",".devcontainer/devcontainer.env"] -
Docker Compose: Bearbeiten Sie
docker-compose.ymlund fügen Sie einen Pfad zurdevcontainer.env-Datei relativ zur Docker Compose-Datei hinzu.version: '3' services: your-service-name-here: env_file: devcontainer.env # ...
docker compose übernimmt automatisch eine Datei namens .env im Ordner, der die docker-compose.yml enthält, aber Sie können auch eine an einem anderen Ort erstellen.
Wenn Sie den Container bereits erstellt und eine Verbindung dazu hergestellt haben, führen Sie Dev Containers: Container neu erstellen aus der Befehlspalette (F1) aus, um die Änderung zu übernehmen. Andernfalls führen Sie Dev Containers: Ordner im Container öffnen... aus, um eine Verbindung zum Container herzustellen.