Site icon Tosolini.info

Gestire Docker da Visual Studio Code

In passato abbiamo già visto le potenzialità di Visual Studio Code, in particolare l’utilizzo della estensione Remote SSH.

Parallelamente al progetto di Remote SSH Microsoft aveva implementato un progetto che si chiama Docker for Visual studio.

Come vedremo questo progetto surclassa in modo netto persino il progetto Docker Dashboard e vediamo in questo articolo perché.

Partiamo con l’installazione, si parte dal presupposto che abbiate installato Visual Studio Code e Docker Desktop. Entrambi sono disponibili per Windows, MacOS e Linux chiaramente ambiente Desktop.

Basterà andare semplicemente nel marketplace all’interno di Visual Studio Code e cercare “docker”. La primissima voce che appare è quella ci interessa, comunque lascio una immagine esplicativa qui sotto.

A questo punto apparirà sulla Barra strumenti verticale alla sinistra del programma, l’icona di Docker (la balenottera). Se Docker è attivo nel sistema, cliccandoci sopra vedremo dopo un breve caricamento tutta la situazione riguardante i container, le immagini, registri, reti e volumi in un una unica schermata, chiaramente divisa in blocchi.

Partiamo subito con il dire che se scriviamo nella palette di Visual Studio Code (⇧ + ⌘ + P oppure Ctrl + Shift + P) e scriviamo “docker” vedremo tutti i comandi docker e docker-compose già pronti per essere utilizzati all’interno dell’editor.

Di questi comandi sicuramente due sono interessanti, uno che si vede anche nell’immagine soprastante è “attach shell“. Ovvero attivandolo il sistema ci chiederà, tra i container che sono attivi in quel momento, quale intendiamo utilizzare. Effettuata la scelta ci troveremo con una shell del container.

L’altra invece permette di agganciare un progetto esistente nel nostro filesystem ad un container, attraverso il comando Docker: Add Docker files to Workspace. Successivamente ci verrà chiesto il linguaggio di progetto (node, python ecc) e quindi compilerà per noi l’equivalente di un docker build e di seguito un docker run in totale automatismo. Tra l’altro il tutto compilando il docker-compose.yml che avevamo visto ad esempio nell’articolo su come utilizzare wordpress in docker.

Se tutto procede bene, possiamo richiamare nuovamente la palette di Visual Studio Code e dare il comando Docker: Build Image che ci permetterà di costruire una immagine da distribuire o caricare in Docker Hub.

La parte a mio avviso più interessante arriva ora, come detto prima nell’interfaccia abbiamo i container e le immagini. Per i container abbiamo di fatto un controllo totale, infatti possiamo accendere e spegnerle direttamente da qui, con un tasto destro sul contenitore interessato.

Come si vede qui sopra, se il container è “running” possiamo anche vedere i logs, agganciare la shell direttamente, agganciare ad un progetto, aprire il browser oppure eliminarla… Interessante anche la funzione “inspect” che di fatto entra nel dettaglio massimo, ovvero apre un file json di quel container dove di fatto troveremo tutti i dettagli, anche quelli che di norma non si vedono mai.

Se la parte dei Containers vi avrà stuzzicato, quella delle Images va ancora oltre. Una delle cose che ho riscontrato nell’utilizzo dei sistemi “ufficiali” è che una volta scaricata una immagine di solito rimane congelata per svariati motivi. Mettiamo di aver scaricato l’immagine di MariaDB, che sarà relativa alla versione 10.3 ma poi chiaramente nel tempo questa si evolve, e magari volete effettuare dei test con la versione più nuova. Ebbene in questo caso, siccome le immagini sono memorizzate in Git, il programma effettua una “pull” scaricando la versione nuova, senza eliminare quella vecchia e mettendola sotto “l’albero” della nostra immagine.

Come si evince dall’immagine qui sopra, è anche possibile far partire il container direttamente dall’immagine, e nel caso specifico con quella precisa immagine. Quindi potenzialmente possiamo avere più versioni “running” del prodotto, ad esempio perché stiamo facendo un debug comparativo.

Se poi l’immagine in questione è nostra, possiamo anche effettuare un push o creare un git tag.

Bene ma se dobbiamo andare a mettere mano all’interno del codice che sta girando nel container? Ecco il colpo di teatro finale. Accedendo, sempre sulla pulsantiera verticale a sinistra, su “esplora remoto” e avendo cura di selezionare “container” in alto (questo se abbiamo attivato anche ssh remote o altri plugin) dovremo vedere i nostri container.

Tra l’altro un indicatore ci dirà se questi sono accesi o meno, bene premendo sulla classica icona a cartella sulla destra, si aprirà una nuova finestra di Visual Studio Code, questa volta direttamente con la possibilità di interagire con l’interno del Container. Infatti se facciamo “apri file” vedremo la struttura interna del contenitore. Dove chiaramente potremo comodamente andare a programmare dall’interno di Visual Studio Code ed ottenere un riscontro immediato senza caricamenti o refresh.

Considerazioni finali

Inutile girarci intorno, Visual Studio Code oramai ha staccato la concorrenza in modo quasi imbarazzante. Sia per termini di performance, si apre davvero in tempi praticamente immediati, sia per l’ampio spettro di possibilità come appunto quella di gestire e programmare da un unico strumento tutto l’ecosistema di Docker.

Exit mobile version