Kūrimas naudojant Docker Windows posistemėje, skirta Linux (WSL)
Norėdami visiškai dirbti su „Docker“ projektu WSL, turite įdiegti WSL 2. Rašymo metu jį naudoti galima tik dalyvaujant „Windows Insider“ programoje (WSL 2 galimas 18932 ir naujesnėse versijose). Taip pat verta atskirai paminėti, kad norint įdiegti ir konfigūruoti Docker Desktop, reikalinga Windows 10 Pro versija.
Pirmieji žingsniai
Prisijungę prie „Insider“ programos ir įdiegę naujinimus, turite įdiegti „Linux“ paskirstymą (šiame pavyzdyje „Ubuntu 18.04“) ir „Docker Desktop“ su WSL 2 technine peržiūra:
Dabar galite paleisti Ubuntu 18.04 ir sukonfigūruoti (nurodykite savo vartotojo vardą ir slaptažodį).
„Docker Desktop“ diegimas
Diegimo proceso metu vadovaukitės instrukcijomis. Įdiegus kompiuterį reikės iš naujo paleisti ir pirmą kartą paleidus, kad būtų įjungtas „Hyper-V“ (tam reikalinga „Windows 10 Pro“ palaikymas).
Svarbu! Jei „Docker Desktop“ praneša, kad užkarda blokuoja, eikite į antivirusinius nustatymus ir atlikite šiuos ugniasienės taisyklių pakeitimus (šiame pavyzdyje „Kaspersky Total Security“ naudojama kaip antivirusinė priemonė):
Atsidariusiame lange spustelėkite mygtuką Pradėti.
„Docker“ ir „docker-compose“ dabar pasiekiami WSL paskirstyme.
Svarbu! Atnaujintame „Docker Desktop“ nustatymų lange dabar yra skirtukas su WSL. Ten įjungtas WSL palaikymas.
Svarbu! Be WSL aktyvinimo žymės langelio, taip pat turite suaktyvinti WSL paskirstymą skirtuke Resources->WSL Integration.
Paleidimas
Netikėta buvo daugybė problemų, iškilusių bandant pakelti projekto konteinerius, esančius Windows vartotojo kataloge.
Įvairių rūšių klaidos, susijusios su bash scenarijų paleidimu (kurios paprastai prasideda kuriant konteinerius, skirtus reikiamoms bibliotekoms ir paskirstymui įdiegti) ir kiti dalykai, įprasti kuriant Linux sistemoje, privertė mus galvoti apie projektų patalpinimą tiesiai į Ubuntu 18.04 vartotojo katalogą.
.
Iš ankstesnės problemos sprendimo: kaip dirbti su projekto failais naudojant „Windows“ įdiegtą IDE. Kaip „geriausią praktiką“ radau tik vieną variantą sau - dirbti per VSCode (nors esu „PhpStorm“ gerbėjas).
Įdiegę aukščiau minėtą plėtinį, tiesiog paleiskite komandą code . projekto kataloge, kai veikia VSCode.
Šiame pavyzdyje nginx turi pasiekti konteinerius per naršyklę. Įdiekite jį per sudo apt-get install nginx Paaiškėjo, kad tai nėra taip paprasta. Pirmiausia turėjome atnaujinti WSL paskirstymą paleisdami sudo apt update && sudo apt dist-upgrade, ir tik po to pradėkite nginx diegimą.
Svarbu! Visi vietiniai domenai registruojami ne „Linux“ paskirstymo faile /etc/hosts (jo net nėra), o „Windows 32“ pagrindinio kompiuterio faile (paprastai esančiame C:WindowsSystem10driversetchosts).