Come preparare un ambiente di sviluppo PHP completo su Windows 10 (WSL2 + Docker + Devilbox + XDebug) - Step 3

Come sviluppiamo i progetti digitali in Masiorama? Ecco a voi lo step 3 del nostro tutorial che vi spiega come replicare il nostro stesso ambiente di sviluppo su Windows 10: oggi si parla di Docker e WSL2.
di
Marco Masi

Configurare sul proprio PC un ambiente di sviluppo completo e flessibile

Eccoci giunti allo step 3 del nostro tutorial: come e perché installare Docker su WSL2.

Come già anticipato dal precedente articolo contenente lo step 2 del nostro tutorial, oggi pubblichiamo il terzo step e possiamo procedere all'installazione di Docker su WSL2.

Installare Docker in WSL2

Ora che abbiamo il nostro ambiente Linux virtualizzato operativo e funzionante installiamo i software necessari a sviluppare i nostri progetti web.

Questo step implica l'installazione e l'uso di 2 software: Docker e Docker Compose.

Docker

"Tramite Docker andremo ad automatizzare il processo di deployment di applicazioni all'interno di contenitori software, sfruttando l'astrazione aggiuntiva data dalla virtualizzazione a livello di sistema operativo Linux".

C'è un discreto numero di concetti tecnici piuttosto complessi dietro questa definizione di Docker presa da Wikipedia, ma non è necessario comprenderli tutti per procedere e usare a livello base lo strumento.

Basti sapere che Docker permette di creare ambienti software con diverse configurazioni in maniera molto semplice e veloce.

Apriamo un terminale WSL - che altri non è che la shell di Ubuntu - e installiamo un primo package che contiene gli strumenti essenziali per costruire altri pacchetti direttamente dal codice sorgente (cosa necessaria all'installazione di Docker) con il seguente comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo apt install build-essential
Installare il package necessario a installare Docker

Essendo un comando ad alto privilegio (lo si capisce dalla presenza del comando sudo), ci verrà richiesto di inserire la password del nostro utente (che abbiamo creato alla fine della precedente parte del tutorial).

Successivamente installiamo ulteriori packages, utili per accedere ai repository di Docker via protocollo HTTPS:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
Installare i package necessari ad accedere ai repository via HTTPS

Per questioni di sicurezza, aggiungiamo la chiave GPG di Docker tramite il comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Aggiungere la GPG key di Docker

Infine verifichiamo di avere la chiave con fingerprint 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88, leggendo gli ultimi 8 caratteri dell'impronta tramite il comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo apt-key fingerprint 0EBFCD88
Leggere il fingerprint
Ubuntu docker fingerprint
Verificare la presenza del fingerprint di Docker.

Finalizzate queste operazioni preparatorie configuriamo il repository stable di Docker sul nostro ambiente, tramite il comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
Configurare il repository 'stable' di Docker

Ci siamo quasi. Ora eseguiamo:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo apt update
Aggiornare la lista dei package

... e finalmente possiamo eseguire l'ultimo comando, installando effettivamente docker su Ubuntu:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo apt install docker-ce docker-ce-cli containerd.io
Installare Docker

Ora ci serve effettuare qualche configurazione base, prima di poter utilizzare Docker in tutta sicurezza.

In primis, creiamo un gruppo denominato docker sul nostro ambiente:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo groupadd docker
Aggiungere il gruppo docker a Ubuntu

E aggiungiamo il nostro utente di Ubuntu al gruppo docker, eseguendo:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo usermod -aG docker $USER
Aggiungere l'utente Ubuntu al gruppo docker

Per rendere operative le modifiche apportate con i comandi precedenti (rendere effettiva la membership al gruppo) serve effettuare il logout e login da WSL (abbiamo visto come si fa nel precedente step del tutorial).

Ora finalmente possiamo eseguire Docker come servizio tramite il comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo service docker start
Eseguire il servizio Docker
Ubuntu docker start
Docker attivo come servizio di Ubuntu.

Come ultima operazione, effettuiamo un test con l'immagine hello-world ufficiale di Docker per verificare che tutto funzioni a dovere:

wsl
masiorama@DESKTOP-ND47T9C:~$ docker run hello-world
Testare il funzionamento di Docker con l'immagine 'hello-world'

Fatto! Se a linea di comando viene stampato, tra le altre cose, Hello from Docker!, allora significa che Docker e tutti i suoi servizi sono operativi e funzionanti.

Docker hello world
Docker hello world.

È da tenere a mente che, se non vengono adottate ulteriori strategie, ad ogni riavvio di macchina (WSL, e quindi anche di Windows), il servizio di Docker dovrà essere eseguito nuovamente (fornendo nuovamente la password dell'utente) per poter lavorare sfruttando i container di Docker.

Nota: qualora si presentasse un errore sui permessi, del tipo:

  • error: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post ...

Si può risolvere eseguendo il seguente comando:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo chmod 666 /var/run/docker.sock
Fix permessi sul docker.sock

Docker Compose

Docker Compose è uno strumento per Docker che, tramite file di configurazione, serve a definire ed eseguire applicazioni Docker multi-container.

Per installare la versione più recente di Docker Composer eseguiamo il seguente comando:

Nota: nel momento in cui leggete questo articolo potrebbe essere disponibile una versione più recente di quella che vedete indicata nel comando shell, cioè la versione 1.29.2.

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
Installare la versione più recente di Docker Compose

A seguire modifichiamo i permessi nella cartella di Docker Composer, tramite:

wsl
masiorama@DESKTOP-ND47T9C:~$ sudo chmod +x /usr/local/bin/docker-compose
Modificare i permessi della cartella di Docker Compose

E infine verifichiamo che sia tutto installato correttamente controllando la versione di Docker Composer:

wsl
masiorama@DESKTOP-ND47T9C:~$ docker-compose --version
Verificare la corretta installazione di Docker Compose

Perfetto! Anche lo step 3 è stato completato correttamente.

Ci stiamo avvicinando finalmente alla parte più divertente!

Tra una settimana pubblicheremo lo step 4 della nostra guida, rimanete sintonizzati e per qualunque informazione scrivete nella sezione commenti sottostante.

Per oggi è tutto!

Commenti

Scrivi un commento e condividi il tuo pensiero con noi!