Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

Za potpuno funkcioniranje projekta na Dockeru u WSL-u potrebna je instalacija WSL 2. U trenutku pisanja ovog članka, njezina upotreba moguća je samo u okviru sudjelovanja u programu za procjenu Windowsa (WSL 2 dostupna je u verzijama 18932 i novijima). Također, važno je napomenuti da je potrebna verzija Windows 10 Pro za instalaciju i konfiguraciju Docker Desktopa.

Prvi koraci

Nakon ulaska u program za procjenu i instalacije ažuriranja, potrebno je instalirati Linux distribuciju (u ovom primjeru koristi se Ubuntu 18.04) i Docker Desktop s WSL 2 Tech Preview:

  1. Docker Desktop WSL 2 Tech Preview
  2. Ubuntu 18.04 iz Windows Store-a

U oba slučaja slijedimo sve upute za instalaciju i konfiguraciju.

Instalacija distribucije Ubuntu 18.04

Prije pokretanja Ubuntu 18.04 potrebno je uključiti Windows WSL i Windows Virtual Machine Platform izvršavanjem dviju naredbi u PowerShellu:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (bit će potrebna ponovna instalacija računala)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

Nakon toga trebamo osigurati da koristimo WSL v2. U terminalu WSL-a ili PowerShellu redom izvršavamo naredbe:

  • wsl -l -v — provjeravamo koja je verzija trenutno instalirana. Ako je 1, idemo dalje na popis
  • wsl --set-version ubuntu 18.04 2 — za nadogradnju na verziju 2
  • wsl -s ubuntu 18.04 — postavljamo Ubuntu 18.04 kao zadanu distribuciju

Sada možemo pokrenuti Ubuntu 18.04, provesti konfiguraciju (navesti korisničko ime i lozinku).

Instalacija Docker Desktopa

Tijekom instalacije slijedimo upute. Računalo će zatražiti ponovni pokretanje nakon instalacije i pri prvom pokretanju za omogućavanje Hyper-V (zbog kojeg je potrebna verzija Windows 10 Pro).

Važno! Ako Docker Desktop prijavi blokadu od strane vatrozida, odlazimo u postavke antivirusnog programa i unosimo sljedeće promjene u pravila mrežnog vatrozida (u ovom primjeru se koristi Kaspersky Total Security):

  • Idemo u Postavke -> Zaštita -> Mrežni vatrozid -> Konfiguriraj paketna pravila -> Local Service (TCP) -> Promijeni
  • Iz popisa lokalnih portova uklanjamo port 445
  • Spremi

Nakon pokretanja Docker Desktopa u njegovom kontekstnom izborniku odabiremo opciju WSL 2 Tech Preview.

Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

U otvorenom prozoru kliknemo gumb Start.

Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

Sada su docker i docker-compose dostupni unutar distribucije WSL.

Važno! U ažuriranom Docker Desktopu sada postoji kartica s WSL-om unutar prozora postavki. Tamo se uključuje podrška za WSL.

Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

Važno! Osim aktivacijske oznake WSL, također je potrebno u odjeljku Resources->WSL Integration aktivirati vaš WSL distribuciju.

Razvoj s Dockerom na Windows Subsystem for Linux (WSL)

Pokretanje

Iznenađenje su predstavljali mnogi problemi koji su se pojavili prilikom pokušaja podizanja kontejnera projekata smještenih u korisničkom direktoriju Windowsa.

Razne pogreške vezane uz pokretanje bash skripti (koje obično započinju prilikom gradnje kontejnera za instalaciju potrebnih biblioteka i distribucija) i drugih, uobičajenih stvari za razvoj na Linuxu, nagnale su na razmišljanje o smještanju projekata izravno u korisnički direktorij Ubuntu 18.04.

.

Iz rješenja prethodnog problema proizašlo je sljedeće: kako raditi s datotekama projekta kroz IDE instaliran na Windowsu. Kao 'najbolja praksa' pronašao sam samo jednu opciju — rad putem VSCode (iako sam obožavatelj PhpStorma).

Nakon preuzimanja i instalacije VSCode obavezno instaliramo proširenje Remote Development extension pack.

Nakon instalacije prethodno spomenutog proširenja, dovoljno je jednostavno izvršiti naredbu code . u direktori projekta dok je VSCode pokrenut.

U ovom primjeru, za pristup kontejnerima putem preglednika potreban je nginx. Instalirati ga putem sudo apt-get install nginx nije bilo tako jednostavno. Prvo je bilo potrebno ažurirati WSL distribuciju izvršavanjem sudo apt update && sudo apt dist-upgrade, i tek nakon toga pokrenuti instalaciju nginx-a.

Važno! Sve lokalne domene ne upisuju se u datoteku /etc/hosts Linux distribucije (tamo je čak nema), već u datoteku hosts (obično smještenu u C:WindowsSystem32driversetchosts) Windows 10.

Izvori

Detaljniji opis svakog koraka može se pronaći ovdje:

Izvor: habr.com

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster