Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Per un utilizzo completo del progetto su docker in WSL, è necessario installare WSL 2. Al momento della scrittura, il suo utilizzo è possibile solo partecipando al programma di anteprima di Windows (WSL 2 è disponibile nelle build 18932 e superiori). Vale anche la pena menzionare che è necessaria una versione di Windows 10 Pro per installare e configurare Docker Desktop.

Primi passi

Dopo essere entrati nel programma di anteprima e aver installato gli aggiornamenti, è necessario installare una distribuzione Linux (in questo esempio si utilizza Ubuntu 18.04) e Docker Desktop con WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 da Windows Store

In entrambi i casi, seguiamo tutte le istruzioni per l'installazione e la configurazione.

Installazione della distribuzione Ubuntu 18.04

Prima di avviare Ubuntu 18.04, è necessario abilitare Windows WSL e Windows Virtual Machine Platform eseguendo due comandi in PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (richiederà il riavvio del computer)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Successivamente, è necessario assicurarsi di utilizzare WSL v2. Per fare ciò, nel terminale WSL o PowerShell, eseguiamo consecutivamente i comandi:

  • wsl -l -v — controlliamo quale versione è attualmente installata. Se è 1, procediamo con l'elenco
  • wsl --set-version ubuntu 18.04 2 — per l'aggiornamento alla versione 2
  • wsl -s ubuntu 18.04 — impostiamo Ubuntu 18.04 come distribuzione predefinita

Ora possiamo avviare Ubuntu 18.04, configurare (specificare nome utente e password).

Installazione di Docker Desktop

Durante il processo di installazione seguiamo le istruzioni. Il computer richiederà un riavvio dopo l'installazione e al primo avvio per abilitare Hyper-V (il quale è necessario per l'ultima versione di Windows 10 Pro).

Attenzione! Se Docker Desktop segnala un blocco da parte del firewall, andiamo nelle impostazioni dell'antivirus e apportiamo le seguenti modifiche alle regole del firewall (in questo esempio utilizziamo Kaspersky Total Security):

  • Andiamo su Impostazioni -> Protezione -> Firewall -> Configura regole del pacchetto -> Local Service (TCP) -> Modifica
  • Dalla lista delle porte locali eliminiamo la porta 445
  • Salva

Dopo aver avviato Docker Desktop, dal suo menu di contesto selezioniamo l'opzione WSL 2 Tech Preview.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Nella finestra che si apre, facciamo clic sul pulsante Inizia.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Ora docker e docker-compose sono disponibili all'interno della distribuzione WSL.

Attenzione! Nella nuova versione di Docker Desktop, è ora disponibile una scheda per WSL all'interno della finestra delle impostazioni. Qui si attiva il supporto per WSL.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Attenzione! Oltre a selezionare l'attivazione di WSL, è necessario attivare la propria distribuzione WSL nella scheda Risorse -> Integrazione WSL.

Sviluppo con Docker su Windows Subsystem for Linux (WSL)

Avvio

È stata una sorpresa scoprire i numerosi problemi che sono emersi nel tentativo di avviare i contenitori dei progetti situati nella directory utente di Windows.

Vari errori riguardanti l'esecuzione di script bash (che di solito si avviano durante la costruzione dei contenitori per installare le librerie e le distribuzioni necessarie) e altre cose comuni nello sviluppo su Linux, hanno portato a riflettere sulla possibilità di posizionare i progetti direttamente nella directory utente di Ubuntu 18.04.

.

Dalla soluzione del problema precedente scaturisce la questione di come lavorare con i file del progetto tramite un IDE installato su Windows. Come 'best practice', ho trovato per me un'unica opzione: lavorare tramite VSCode (anche se sono un fan di PhpStorm).

Dopo aver scaricato e installato VSCode, è fondamentale installare l'estensione pacchetto di estensioni per Sviluppo Remoto.

Dopo aver installato l'estensione sopra menzionata, è sufficiente eseguire il comando code . nella directory del progetto quando VSCode è in esecuzione.

In questo esempio, per accedere ai container tramite il browser è necessario nginx. Installalo tramite sudo apt-get install nginx non è stato così semplice. Per cominciare, è stato necessario aggiornare la distribuzione WSL eseguendo sudo apt update && sudo apt dist-upgrade, e solo dopo questo avviare l'installazione di nginx.

Attenzione! Tutti i domini locali non sono registrati nel file /etc/hosts della distribuzione Linux (non esiste nemmeno), ma nel file hosts (solitamente situato in C:\Windows\System32\drivers\etc\hosts) di Windows 10.

Fonti

Una descrizione più dettagliata di ogni passaggio può essere trovata qui:

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster