Ich kann das Gefühl jetzt nicht leugnen, aber ich vergesse oft, wie man devcontainer.json schreibt, deshalb lasse ich es im Artikel als Memorandum für mich.
Um mit VSCode eine Verbindung zur Entwicklungsumgebung im Docker-Container herzustellen, verwenden Sie die Erweiterung Remote Development. Sie werden es brauchen, also lassen Sie es uns installieren.
vscode.png)
Bereiten Sie nach dem Hinzufügen der Erweiterung die Einstellungsdatei "devcontainer.json" und den Speicherordner vor.
/ProjectRoot
└ .devcontainer
└ devcontainer.json
Erstellen Sie einen Ordner ".devcontainer" unter dem Stammordner des Projekts, für das Sie Remote Development verwenden möchten, und erstellen Sie dort "devcontainer.json".
Beschreiben Sie in devcontainer.json
die Definition des zu erweiternden Docker-Containers wie unten gezeigt ( docker-compose.yml
im folgenden Beispiel), die VSCode-Erweiterung, die Sie verwenden möchten, die Einstellungen für die Portweiterleitung usw. Gehen.
{
"name": "sample_project",
"dockerComposeFile": "../docker-compose.yml",
"service": "web",
"extensions": [
"mhutchie.git-graph",
],
"forwardPorts": [
8080
],
"workspaceFolder": "/app",
}
Weitere Informationen zum Einstellen finden Sie im offiziellen Dokument devcontainer.json reference, das jedoch ins Japanische übersetzt wurde. Außerdem gibt es viele Einstellungselemente, daher habe ich die häufig verwendeten Einstellungselemente aufgegriffen und zusammengefasst.
image
Ein einzelner Docker-Container, der für die Entwicklung verwendet wird, ist Docker Hub, [Azure Container Registry](https://azure.microsoft.com/ja-jp/services/container- Wird beim Referenzieren aus der Registrierung festgelegt /). (Für beide ist ein Login erforderlich, daher müssen Sie im Voraus ein Konto haben.)
dockerFile
Richten Sie einen einzelnen Docker-Container für die Entwicklung ein, wenn Sie eine lokale Docker-Datei verwenden.
dockerComposeFile
Legen Sie mehrere Docker-Container fest, die für die Entwicklung verwendet werden, wenn Sie die lokale Datei docker-compose.yml verwenden. (Es ist notwendig, den später beschriebenen "Service" einzustellen und den Container eindeutig so einzustellen, dass er tatsächlich an Bord geht.)
Bitte beachten Sie, dass der Pfad zur angegebenen docker-compose.yml relativ zu devcontainer.json sein muss. (Wenn es sich unter dem Stammverzeichnis des Projekts befindet, lautet es "../ docker-compose.yml".)
service
Dieses Element ist erforderlich, wenn dockerComposeFile
verwendet wird, und legt den Dienstnamen des Containers, der während der Entwicklung tatsächlich geladen wird, aus der Definition von docker-compose.yml fest. (Im Fall von Webdiensten denke ich, dass es normalerweise ein Container für den Anwendungsserver ist.)