Распрацоўка з Docker на Windows Subsystem for Linux (WSL)
Для паўнавартаснай працы з праектам на docker'е ў WSL неабходна ўсталёўка WSL 2. На момант напісання нататкі яе выкарыстанне магчыма толькі ў рамках удзелу ў праграме папярэдняй адзнакі Windows (WSL 2 даступная ў зборках 18932 і вышэй). Гэтак жа асобна варта згадаць, што неабходна версія Windows 10 Pro для ўсталёўкі і налады Docker Desktop.
Першыя крокі
Пасля ўступлення ў праграму папярэдняй адзнакі і ўсталёўкі абнаўленняў неабходна ўсталяваць дыстрыбутыў Linux (у дадзеным прыкладзе выкарыстоўваецца Ubuntu 18.04) і Docker Desktop з WSL 2 Tech Preview:
Пасля неабходна пераканацца, што мы будзем выкарыстоўваць WSL v2. Для гэтага ў тэрмінале WSL або PowerShell паслядоўна выконваем каманды:
wsl -l -v - глядзім, якая версія ўстаноўлена ў дадзены момант. Калі 1, то рухаемся далей па спісе
wsl --set-version ubuntu 18.04 2 - для абнаўлення да версіі 2
wsl -s ubuntu 18.04 - усталёўваны Ubuntu 18.04 у якасці дыстрыбутыва па-змаўчанні
Цяпер можна запусціць Ubuntu 18.04/XNUMX, правесці наладу (пазначыць імя карыстальніка і пароль).
Ўстаноўка Docker Desktop
У працэсе ўстаноўкі прытрымліваемся ўказанням. Кампутар запатрабуе перазапуск пасля ўсталёўкі і пры першым запуску для ўключэння Hyper-V (з-за падтрымкі якога і патрабуецца версія Windows 10 Pro).
Важна! Калі Docker Desktop паведаміць аб блакаванні з боку firewall'а, ідзем у налады антывіруса і ўносім наступныя змены ў правілы сеткавага экрана (у дадзеным прыкладзе ў якасці антывіруса выкарыстоўваецца Kaspersky Total Security):
Праходзім у Налады -> Абарона -> Сеткавы экран -> Наладзіць пакетныя правілы -> Local Service (TCP) -> Змяніць
Са спісу лакальных партоў выдаляем порт 445
Захаваць
Пасля запуску Docker Desktop у яго кантэкстным меню выбіраемы пункт WSL 2 Tech Preview.
У якое адкрылася акне націскаем кнопку Start.
Цяпер docker і docker-compose даступныя ўнутры дыстрыбутыва WSL.
Важна! У абноўленым Docker Desktop зараз укладка з WSL усярэдзіне акна налад. Там уключаецца падтрымка WSL.
Важна! Акрамя галачкі актывацыі WSL таксама неабходна ва ўкладцы Resources->WSL Integration актываваць Ваш WSL дыстрыбутыў.
запуск
Нечаканасцю сталі тыя шматлікія праблемы, якія ўзніклі пры спробе падняць кантэйнеры праектаў, размешчаных у дырэкторыі карыстальніка Windows.
Памылкі рознага роду, звязаныя з запускам bash-скрыптоў (якія як правіла стартуюць пры зборцы кантэйнераў для ўсталёўкі неабходных бібліятэк і дыстрыбутываў) і іншых, звычайных для распрацоўкі на Linux, рэчаў, прымусілі задумацца аб размяшчэнні праектаў непасрэдна ў дырэкторыі карыстальніка Ubuntu 18.04/XNUMX.
.
З рашэння папярэдняй праблемы выцякае наступная: як працаваць з файламі праекту праз IDE, усталяваную на Windows. У якасці «best practice» я знайшоў для сябе толькі адзін варыянт – праца пасродкам VSCode (хоць з'яўляюся прыхільнікам PhpStorm).
Пасля ўстаноўкі вышэй згаданага пашырэння дастаткова проста выканаць каманду code . у дырэкторыі праекта пры запушчанай VSCode.
У дадзеным прыкладзе для звароту да кантэйнераў праз браўзэр неабходзен nginx. Усталяваць яго праз sudo apt-get install nginx аказалася не так проста. Для пачатку запатрабавалася абнавіць дыстрыбутыў WSL пасродкам выканання sudo apt update && sudo apt dist-upgrade, і толькі пасля гэтага запусціць усталёўку nginx.
Важна! Усе лакальныя дамены прапісваюцца не ў файле /etc/hosts дыстрыбутыва Linux (яго тамака нават няма), а ў файле hosts (звычайна размешчаным C:WindowsSystem32driversetchosts) Windows 10.
крыніцы
Больш падрабязнае апісанне кожнага кроку можна знайсці тут: