Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

Na plnú funkčnosť projektu na dockeri v WSL je potrebná inštalácia WSL 2. V čase písania tohto oznámenia je jej používanie možné iba v rámci účasti na programe predbežného hodnotenia systému Windows (WSL 2 je dostupné v zostavách 18932 a vyššie). Je tiež potrebné spomenúť, že potrebujete verziu Windows 10 Pro na inštaláciu a nastavenie Docker Desktop.

Prvé kroky

Po prihlásení do programu predbežného hodnotenia a inštalácii aktualizácií je potrebné nainštalovať distribúciu Linuxu (v tomto príklade sa používa Ubuntu 18.04) a Docker Desktop s WSL 2 Tech Preview:

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

V oboch bodoch sa riadime všetkými pokynmi k inštalácii a nastaveniu.

Inštalácia distribúcie Ubuntu 18.04

Pred spustením Ubuntu 18.04 je potrebné zapnúť Windows WSL a Windows Virtual Machine Platform vykonaním dvoch príkazov v PowerShelli:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (bude vyžadovať reštart počítača)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Následne sa musíte uistiť, že používame WSL v2. Na to v termináli WSL alebo PowerShell postupne vykonáme príkazy:

  • wsl -l -v — kontrolujeme, ktorá verzia je aktuálne nainštalovaná. Ak je 1, pokračujeme v zozname
  • wsl --set-version ubuntu 18.04 2 — pre aktualizáciu na verziu 2
  • wsl -s ubuntu 18.04 — nastavíme Ubuntu 18.04 ako predvolenú distribúciu

Teraz môžeme spustiť Ubuntu 18.04, vykonať nastavenie (určiť meno používateľa a heslo).

Inštalácia Docker Desktop

Počas inštalácie sa riadime pokynmi. Po inštalácii si počítač bude vyžadovať reštart a pri prvom spustení na povolenie Hyper-V (kvôli podpore, ktorú vyžaduje verzia Windows 10 Pro).

Dôležité! Ak Docker Desktop nahlási blokáciu zo strany firewallu, prejdeme do nastavení antivírusového softvéru a vykonáme nasledujúce zmeny v pravidlách sieťovej brány (v tomto príklade sa ako antivírus používa Kaspersky Total Security):

  • Prejdeme do Nastavenia -> Ochrana -> Sieťová brána -> Nastaviť paketové pravidlá -> Local Service (TCP) -> Zmeniť
  • Z zoznamu lokálnych portov odstránime port 445
  • Uložiť

Po spustení Docker Desktop v jeho kontextovej ponuke vyberieme položku WSL 2 Tech Preview.

Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

V otvorenom okne stlačíme tlačidlo Štart.

Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

Teraz sú docker a docker-compose dostupné v rámci distribúcie WSL.

Dôležité! V aktualizovanom Docker Desktop je teraz karta s WSL vo vnútri okna nastavení. Tam sa zapína podpora WSL.

Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

Dôležité! Okrem zaškrtnutia aktivácie WSL je tiež potrebné v záložke Resources->WSL Integration aktivovať váš WSL distribúciu.

Vývoj pomocou Docker na Windows Subsystem for Linux (WSL)

Spustenie

Prekvapením boli mnohé problémy, ktoré sa objavili pri pokuse spustiť kontajnery projektov umiestnených v adresári používateľa Windows.

Chyby rôzneho druhu spojené so spúšťaním bash skriptov (ktoré sa zvyčajne spúšťajú pri zostavovaní kontajnerov na inštaláciu potrebných knižníc a distribúcií) a iné, bežné pre vývoj na Linuxe, ma prinútili zamyslieť sa nad umiestnením projektov priamo v adresári používateľa Ubuntu 18.04.

.

Z predchádzajúceho problému vyplýva nasledujúce: ako pracovať s súbormi projektu cez IDE nainštalované na Windows. Ako "best practice" som našiel len jednu možnosť - práca prostredníctvom VSCode (hoci som fanúšikom PhpStorm).

Po stiahnutí a inštalácii VSCode je potrebné nainštalovať rozšírenie Remote Development extension pack.

Po inštalácii vyššie uvedeného rozšírenia stačí jednoducho vykonať príkaz code . v adresári projektu pri spustené VSCode.

V tomto príklade je na prístup k kontajnerom prostredníctvom prehliadača potrebný nginx. Nainštalovať ho cez sudo apt-get install nginx sa ukázalo byť nie také jednoduché. Najprv bolo potrebné aktualizovať distribúciu WSL vykonaním sudo apt update && sudo apt dist-upgrade, a až potom spustiť inštaláciu nginx.

Dôležité! Všetky lokálne domény sú zapisované nie v súbore /etc/hosts distribúcie Linux (ten tam ani nie je), ale v súbore hosts (zvyčajne sa nachádza C:WindowsSystem32driversetchosts) Windows 10.

Zdroje

Podrobnejší popis každého kroku nájdete tu:

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster