Salta ai contenuti

VS Code

  1. VS Code
  2. Estensione Dev Containers (ms-vscode-remote.remote-containers)
  3. Docker o Podman in esecuzione sulla propria macchina (vedi Per iniziare). VS Code Dev Containers supporta anche Podman come backend.
Terminal window
git clone https://github.com/f5-sales-demo/devcontainer.git
code devcontainer

VS Code rileva .devcontainer/devcontainer.json e mostra una notifica: “Reopen in Container”. Fare clic su di essa, oppure utilizzare la palette dei comandi:

Dev Containers: Reopen in Container

VS Code compila (o scarica) l’immagine, avvia il container, installa le estensioni e apre un terminale all’interno del container.

Il file .devcontainer/devcontainer.json indica a VS Code di utilizzare Docker Compose:

"dockerComposeFile": ["../docker-compose.yml", "../docker-compose.build.yml"],
"service": "dev",
"workspaceFolder": "/workspace"

La configurazione del devcontainer include esplicitamente il file di build, così VS Code può compilare l’immagine localmente quando si utilizza “Reopen in Container” o “Rebuild Container”.

Le estensioni vengono installate automaticamente all’interno del container:

EstensioneDescrizione
PythonSupporto per il linguaggio Python
ESLintLinting JavaScript/TypeScript
PrettierFormattazione del codice
DockerSupporto per Dockerfile e compose
TerraformSupporto per il linguaggio HCL
GoSupporto per il linguaggio Go
Rust AnalyzerSupporto per il linguaggio Rust
YAMLSupporto per il linguaggio YAML
KubernetesSupporto per i manifest Kubernetes

Per aggiungere estensioni, modificare l’array customizations.vscode.extensions in .devcontainer/devcontainer.json.

VS Code inoltra automaticamente le porte definite nel file compose. Il display noVNC è disponibile all’indirizzo http://localhost:6080/vnc.html — VS Code invierà una notifica quando la porta è pronta.

Porte aggiuntive possono essere inoltrate su richiesta dal pannello Porte in VS Code.

Se si preferisce la riga di comando rispetto all’interfaccia di VS Code:

Terminal window
npm install -g @devcontainers/cli
devcontainer up --workspace-folder .
devcontainer exec --workspace-folder . zsh

Dopo aver modificato il Dockerfile o i file compose:

Dev Containers: Rebuild Container

Questo ricompila l’immagine e riavvia il container. I volumi con nome (workspace, home) persistono tra le ricompilazioni.