Windows荳翫〒Docker縺碁≦縺譎ゅョ蟇セ蜃ヲ豕

Windows縺ョ繝ュ繝シ繧ォ繝ォ迺ー蠅縺ォ髢狗匱迺ー蠅逕ィDocker繧呈ァ狗ッ峨@Laravel髢狗匱繧定ゥヲ縺ソ縺溘ョ縺ァ縺吶′縲√壹シ繧ク陦ィ遉コ縺ォ豈主屓シ慕ァ偵¥繧峨>縺九°縺」縺ヲ髱槫クク縺ォ驕縺

縺昴s縺ェ縺ッ縺壹↑縺縺繧阪≧縲∽ス輔°髢馴&縺医※縺繧九ョ縺ァ縺ッ縺ェ縺縺九→隱ソ縺ケ縺溘ョ縺後″縺」縺九¢

蜴溷屏

Docker繧淡SL2繝吶シ繧ケ縺ァ蜍輔°縺帙※縺翫i縺壹仝indows荳翫ョ繝輔ぃ繧、繝ォ繧鱈inux繝輔ぃ繧、繝ォ繝吶シ繧ケ縺ォ螟画鋤縺吶k髫帙ョ繧ェ繝シ繝舌シ繝倥ャ繝峨′蜴溷屏縺ァ縺励◆縲

Docker迺ー蠅讒狗ッ芽ィ倅コ九r繧ー繧ー繧翫↑縺後i騾イ繧√◆縺ョ縺ァ縺吶′縲∵ュ」縺励>諠蝣ア縺ァ遒コ隱阪☆繧九%縺ィ縺ッ螟ァ莠九〒縺吶ュ縲

WSL 2シWindows Subsystem for Linux 2シ峨ッ縲仝indows 10縺翫h縺ウWindows Server 2019縺ァ蛻ゥ逕ィ蜿ッ閭ス縺ェ讖溯ス縺ァ縺ゅj縲仝indows荳翫〒Linux繧ォ繝シ繝阪Ν繧貞ョ溯。後☆繧倶サョ諠ウ蛹匁橿陦薙〒縺吶ゅ%繧後↓繧医j縲仝indows繝帙せ繝井ク翫〒Linux繝舌う繝翫Μ繧繝繝シ繝ォ繧偵ロ繧、繝繧」繝悶↓螳溯。後〒縺阪∪縺吶

WSL 2縺ッ縲∽サ・蜑阪ョWSL繧医j繧ょ、ァ蟷縺ォ謾ケ蝟縺輔l縺溘ヱ繝輔か繝シ繝槭Φ繧ケ縺ィ莠呈鋤諤ァ繧呈署萓帙@縺セ縺吶ら音縺ォ縲.ocker縺ェ縺ゥ縺ョLinux繝吶シ繧ケ縺ョ髢狗匱繝繝シ繝ォ繧繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ繧淡indows荳翫〒螳溯。後☆繧句エ蜷医↓縲∝、ァ蟷縺ェ繝代ヵ繧ゥ繝シ繝槭Φ繧ケ蜷台ク翫′譛溷セ縺ァ縺阪∪縺吶

WSL 2縺ッ縲?yper-V縺ィ縺縺莉ョ諠ウ蛹悶励Λ繝繝医ヵ繧ゥ繝シ繝繧剃スソ逕ィ縺励※Linux繧ォ繝シ繝阪Ν繧偵帙せ繝医☆繧倶サョ諠ウ繝槭す繝ウ繧呈署萓帙@縺セ縺吶ゅ%繧後↓繧医j縲´inux縺ィWindows縺ョ髢薙〒縺ョ繝ェ繧ス繝シ繧ケ縺ョ蛻蜑イ繧逶ク莠帝°逕ィ諤ァ縺悟庄閭ス縺ォ縺ェ繧翫∪縺吶


Docker縺ョ繝代ヵ繧ゥ繝シ繝槭Φ繧ケ繧貞髄荳翫&縺帙k縺ォ縺ッ縲∵ャ。縺ョ譁ケ豕輔′縺ゅj縺セ縺吶

  • Docker繧淡SL 2繧貞茜逕ィ縺励◆迺ー蠅縺ァ螳溯。後☆繧九
  • 繧ス繝シ繧ケ繧ウ繝シ繝峨rWSL 2縺ョ繝繧」繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ鬆伜沺蜀縺ォ驟咲スョ縺吶k縲

荳願ィ倥r雕上∪縺医※謾ケ繧√※謨エ逅縺励◆讒狗ッ画焔鬆繧定ィ倩シ峨@縺ヲ縺縺阪∪縺吶

Windows縺ァ Docker + Laravel 讒狗ッ画焔鬆

蜑肴署

Docker Desktop縺ッ繧、繝ウ繧ケ繝医シ繝ォ貂医∩縺ァ縺ゅk縺薙→縲Windows 縺ォ Docker Desktop 繧偵う繝ウ繧ケ繝医シ繝ォ

WSL2繧偵う繝ウ繧ケ繝医シ繝ォ

Docker Desktop繧、繝ウ繧ケ繝医シ繝ォ譎ゅ↓Ubuntu繧ゅう繝ウ繧ケ繝医シ繝ォ縺励◆縺、繧ゅj縺ァ縺励◆縺後仝SL2縺ョ繝繧」繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ繧貞盾辣ァ縺吶k縺ィUbuntu縺後≠繧翫∪縺帙s縲

PS C:\Users\syun> wsl -l -v
  NAME                   STATE           VERSION
* docker-desktop         Running         2
  docker-desktop-data    Running         2

縺薙ョ迥カ諷九〒縺ゅl縺ー縺翫→縺ェ縺励¥WSL2繧、繝ウ繧ケ繝医シ繝ォ縺ョ謇矩縺ォ騾イ縺ソ縺セ縺吶

譛邨ら噪縺ォ縺ッ縺薙ョ繧医≧縺ェ繝ャ繧ケ繝昴Φ繧ケ縺瑚ソ斐▲縺ヲ縺上l縺ーOK

  NAME                   STATE           VERSION
* Ubuntu                 Running         2
  docker-desktop         Running         2
  docker-desktop-data    Running         2

縺セ縺壹ッPowerShell 縺セ縺溘ッ Windows 繧ウ繝槭Φ繝 繝励Ο繝ウ繝励ヨ繧邂。逅閠繝「繝シ繝峨〒髢九″縲『sl --install 繧ウ繝槭Φ繝峨r蜈・蜉帙@縲√槭す繝ウ繧貞崎オキ蜍輔@縺セ縺吶

wsl --install

邏ー縺九>謇矩縺ョ蜿らァ縺悟ソ隕√↑蝣エ蜷医ッWSL 繧剃スソ逕ィ縺励※ Windows 縺ォ Linux 繧偵う繝ウ繧ケ繝医シ繝ォ縺吶k譁ケ豕繧偵#隕ァ縺上□縺輔>縲

縺薙ョ繧ウ繝槭Φ繝峨↓繧医j縲仝SL 繧貞ョ溯。後@縲´inux 縺ョ Ubuntu 繝繧」繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ繧偵う繝ウ繧ケ繝医シ繝ォ縺吶k縺溘a縺ォ蠢隕√↑讖溯ス縺梧怏蜉ケ縺ォ縺ェ繧翫∪縺吶

繧、繝ウ繧ケ繝医シ繝ォ縺碁イ繧縺ィUbuntu縺ョ繧「繧ォ繧ヲ繝ウ繝井ス懈舌r豎ゅa繧峨l繧九ョ縺ァ縲!D縺ィ繝代せ繝ッ繝シ繝峨r險ュ螳壹@縺セ縺吶

繧、繝ウ繧ケ繝医シ繝ォ縺悟ョ御コ縺励◆繧姥SL2縺ョ險ュ螳壹r陦後>縺セ縺吶

wsl --set-version Ubuntu 2

縺薙l縺ァWSL2縺ョ菴懈・ュ縺ッ螳御コ縺ァ縺吶

Docker Desktop縺ョ險ュ螳壼、画峩

Docker Desktop縺ョ險ュ螳壹〒WSL2縺ョ繝繧」繧ケ繝医Μ繝薙Η繝シ繧キ繝ァ繝ウ繧貞茜逕ィ蜿ッ閭ス縺ォ縺励∪縺吶

逕サ髱「荳企Κ縺ョ縲瑚ィュ螳壹Γ繝九Η繝シ縲坂淡SL integration 竍偵Resources WSL integration 縺ィ騾イ縺ソ縺セ縺吶

Ubuntu繧呈怏蜉ケ蛹悶☆繧玖ィュ螳壹′縺ゅj縺セ縺吶ョ縺ァ縲√く繝」繝励メ繝」縺ョ繧医≧縺ォ譛牙柑蛹冶ィュ螳壹r陦後>
縲窟pply & restart縲阪懊ち繝ウ繧呈款荳九@縺セ縺吶

Docker Desktop縺ァUbuntu縺ョWSL繧呈怏蜉ケ蛹

繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ繝励Ο繧ー繝ゥ繝繧旦buntu縺ョ鬆伜沺縺ォ驟咲スョ

Ubuntu鬆伜沺縺ッ荳玖ィ倥ヱ繧ケ縺ォ縺ェ繧翫∪縺吶

\wsl.localhost\Ubuntu\home\

繧「繝峨Ξ繧ケ繝舌シ縺ォ蜈・蜉帙☆繧九→繧「繧ッ繧サ繧ケ縺ァ縺阪∪縺吶

\wsl.localhost\Ubuntu\home\[繝ヲ繝シ繧カ蜷江\ 驟堺ク九↓繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ繝励Ο繧ー繝ゥ繝繧帝咲スョ縺励※縺縺阪∪縺励g縺縲

繝阪ャ繝医Ρ繝シ繧ッ繝峨Λ繧、繝悶ョ蜑イ繧雁ス薙※繧偵@縺ヲ縺翫¥縺ィ蠕後萓ソ蛻ゥ縺ァ縺吶

繝阪ャ繝医Ρ繝シ繧ッ繝峨Λ繧、繝悶ョ蜑イ繧雁ス薙※險ュ螳

laravel 繧、繝ウ繧ケ繝医シ繝ォ

Linux繝輔ぃ繧、繝ォ繝吶シ繧ケ縺ァLaravel繧貞ョ溯。後☆繧九◆繧√↓縲ゞbuntu鬆伜沺蜀縺ォLaravel繧偵う繝ウ繧ケ繝医シ繝ォ縺励∪縺吶

縺セ縺壹ッDocker繧ウ繝ウ繝繝翫r遶九■荳翫£縺セ縺励g縺縲Eocker-compose.yml縺ョ繧オ繝ウ繝励Ν縺ッ縺薙■繧峨

諠ウ螳壹ヱ繧ケ縺ァ謖螳壹@縺ヲ縺繧九ョ縺ァ繧上°繧翫▼繧峨>縺ァ縺吶′繝舌う繝ウ繝峨槭え繝ウ繝医〒Ubuntu鬆伜沺繧呈欠螳壹@縺ヲ縺縺セ縺吶

version: '3'
services:
  nginx:
    image: syunbiz03/nginx
    container_name: "dc"
    build:
      context: ./docker/nginx
    ports:
      - 8080:80
    volumes:
      - ./:/src

  app:
    image: syunbiz03/app
    container_name: "app"
    build:
      context: ./docker/php
    depends_on:
      - mysql
    ports:
      - 5173:5173
    volumes:
      - ./:/src
      - /src/node_modules
      - /src/vendor
      - ./docker/php/php.ini:/usr/local/etc/php/php.ini

  mysql:
    image: mysql:8.0.37
    command: --max_allowed_packet=32505856
    container_name: "dc_mysql"
    volumes:
      - ./docker/mysql:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=root
    ports:
      - 3306:3306

  redis:
    image: redis:alpine
    container_name: "redis"
    ports:
      - 16379:6379

繧ウ繝ウ繝繝翫′遶九■荳翫′縺」縺溘iLaravel縺ョ繧、繝ウ繧ケ繝医シ繝ォ蜈医〒縺ゅk繧ウ繝ウ繝繝雁錐 : app 縺ョ繧オ繝シ繝舌↓蜈・繧翫∪縺吶

docker compose exec app bash

Laravel縺ョ繝励Ο繧ク繧ァ繧ッ繝医r菴懈舌@縺セ縺吶

composer create-project laravel/laravel --prefer-dist myapplication

萓晏ュ倬未菫ゅョ繧、繝ウ繧ケ繝医シ繝ォ

Laravel縺ョ縺贋ス懈ウ輔↓縺ョ縺」縺ィ縺」縺ヲ縺薙ョ霎コ繧翫ョ繧ウ繝槭Φ繝峨b螳溯。後@縺ヲ縺縺阪∪縺吶

composer install
chmod -R ug+rwx storage
php artisan storage:link

npm 繧、繝ウ繧ケ繝医シ繝ォ

WSL2縺ォnpm繧偵う繝ウ繧ケ繝医シ繝ォ縺励∪縺吶

縺薙■繧峨ョ繝壹シ繧ク繧貞盾閠縺ォ縺励※縺縺セ縺吶Node.js 繧 Linux 逕ィ Windows 繧オ繝悶す繧ケ繝繝 (WSL2) 縺ォ繧、繝ウ繧ケ繝医シ繝ォ縺吶k

sudo apt-get install curl
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash
nvm install --lts
nvm use --lts
npm update

蜿り繧オ繧、繝医〒縺ッUbuntu 繧ウ繝槭Φ繝 繝ゥ繧、繝ウ縺九i繧、繝ウ繧ケ繝医シ繝ォ縺吶k縺ィ險倩シ峨&繧後※縺縺セ縺吶′縲´aravel繧偵う繝ウ繧ケ繝医シ繝ォ縺励◆繧ウ繝ウ繝繝翫〒蠑輔″邯壹″菴懈・ュ縺吶k縺薙→繧偵♀蜍ァ繧√@縺セ縺吶6buntu縺九i繧、繝ウ繧ケ繝医シ繝ォ縺吶k縺ィ讓ゥ髯仙捉繧翫〒髱「蛟偵↑縺薙→縺ォ縺ェ繧翫∪縺吶

縺薙l縺ァ荳騾壹j縺ョ菴懈・ュ縺ッ螳御コ縺ァ縺吶

譛蠕後↓ npm run dev 繧ウ繝槭Φ繝峨r螳溯。後@縺ヲ繧オ繝シ繝舌↓繧「繧ッ繧サ繧ケ縺吶l縺ー縲√壹シ繧ク縺瑚。ィ遉コ縺輔l縺セ縺吶

繝代シ繝溘ャ繧キ繝ァ繝ウ縺ョ險ュ螳

Windows 縺ョ繝繝輔か繝ォ繝医Θ繝シ繧カ縺ィ Ubuntu 縺ョ繝繝輔か繝ォ繝医Θ繝シ繧カ縺ョ驕輔>縺ォ繧医j縲縺昴ョ縺セ縺セ縺ョ迥カ諷九〒縺ッ Windows 荳翫°繧峨ヵ繧。繧、繝ォ譖エ譁ー縺ァ縺阪∪縺帙s縲IDE縺ェ縺ゥ縺御スソ縺医↑縺縺溘a縺薙ョ縺セ縺セ縺ァ縺ッ髱槫クク縺ォ荳堺セソ縺ァ縺吶

繝輔ぃ繧、繝ォ縺ョ謇譛芽繧定ヲ九k縺ィ繝励Ο繧ク繧ァ繧ッ繝亥縺ョ繝輔ぃ繧、繝ォ縺ッ謇譛芽縺 root 縺ォ縺ェ縺」縺ヲ縺縺セ縺吶

Ubuntu繝繧」繝ャ繧ッ繝医Μ縺ョ繝代シ繝溘ャ繧キ繝ァ繝ウ荳隕ァ

縺励°縺邑indows荳翫°繧画眠隕上〒菴懈舌@縺溘ヵ繧。繧、繝ォ縺ッ荳玖ィ倥ョ繧医≧縺ォ繝ヲ繝シ繧カID : 1000 ( Windows 縺ョ繝繝輔か繝ォ繝医Θ繝シ繧カ)縺ォ縺ェ縺」縺ヲ縺縺セ縺吶
test.txt縺梧眠隕上〒菴懈舌@縺溘ヵ繧。繧、繝ォ縺ァ縺吶

Windows縺ョ繝繝輔か繝ォ繝医Θ繝シ繧カ

縺薙ョ蝠城。後r隗」豎コ縺吶k縺溘a縺ォ縺ッ縲ゞbuntu荳翫〒繝ヲ繝シ繧カID:1000縺ョ繧「繧ォ繧ヲ繝ウ繝医r菴懈舌@縲∵園譛芽繧貞、画峩縺励∪縺吶
Ubuntu荳翫ョ謇譛芽縺ョ繧ー繝ォ繝シ繝励b繝繝輔か繝ォ繝医〒縺ゅkwww-data縺ォ螟画峩縺励※縺翫″縺セ縺励g縺縲

繝ヲ繝シ繧カID:1000縺ョ繧「繧ォ繧ヲ繝ウ繝医r菴懈

繧「繧ォ繧ヲ繝ウ繝亥錐縺ッ縲慧ev縲阪√げ繝ォ繝シ繝励ッwww-data縺ォ險ュ螳壹@縺セ縺吶

useradd -u 1000 dev -G www-data

譁ー隕上〒菴懈舌@縺溘い繧ォ繧ヲ繝ウ繝医ョ繝繝輔か繝ォ繝医げ繝ォ繝シ繝励r縲詣ww-data縲阪↓螟画峩縺励※縺翫″縺セ縺吶

usermod -g www-data dev

謇譛芽縺ョ螟画峩

繝励Ο繧ク繧ァ繧ッ繝亥縺ョ繝輔ぃ繧、繝ォ謇譛芽繧剃ク諡ャ縺ァ螟画峩縺励∪縺吶ゆスオ縺帙※繝代シ繝溘ャ繧キ繝ァ繝ウ繧ょ、画峩縺励※縺翫″縺セ縺吶

chown -R dev:www-data myapplication
chmod -R 775 myapplication

繝励Ο繧ク繧ァ繧ッ繝医ヵ繧ゥ繝ォ繝閾ェ菴薙ョ謇譛芽縺ッroot縺ォ謌サ縺

縺薙l繧偵d繧峨↑縺縺ィ npm run dev 繧ウ繝槭Φ繝牙ョ溯。梧凾縺ォ繧ィ繝ゥ繝シ縺ォ縺ェ繧翫∪縺励◆縲

蜴溷屏霑ス蜿翫〒縺阪※縺縺セ縺帙s縺悟叙繧頑・縺手ァ」豎コ縺吶k譁ケ豕輔→縺励※謇譛芽繧貞縺ォ謌サ縺励∪縺吶

chown root:root myapplication

繝ュ繧ー繝輔ぃ繧、繝ォ縺ョ繝代シ繝溘ャ繧キ繝ァ繝ウ螟画峩

繝ュ繧ー繝輔ぃ繧、繝ォ縺ッ繧キ繧ケ繝繝蛛エ縺瑚ェ蜍輔〒菴懈舌@縺ヲ縺縺上ョ縺ァ縲√%縺。繧峨b菴オ縺帙※險ュ螳壹′蠢隕√〒縺吶

荳玖ィ倥ョ險倅コ九r蜿り縺ォ險ュ螳壹@縺セ縺吶

Laravel
Laravel log縺ョPermission denied蟇セ蠢

菴懈・ュ荳ュ縺ォ驕ュ驕縺励◆蜷遞ョ繧ィ繝ゥ繝シ

sh: 1: vite: not found

npm縺ョ繧、繝ウ繧ケ繝医シ繝ォ縺ォ蝠城。後′縺ゅk蜿ッ閭ス諤ァ縺後≠繧翫∪縺吶

荳玖ィ倥さ繝槭Φ繝峨r隧ヲ縺励※縺ソ縺ヲ縺上□縺輔>縲

npm update

Cannot find module @rollup/rollup-linux-x64-gnu

npm縺ョ繧、繝ウ繧ケ繝医シ繝ォ縺ォ蝠城。後′縺ゅk蜿ッ閭ス諤ァ縺後≠繧翫∪縺吶

荳玖ィ倥さ繝槭Φ繝峨r隧ヲ縺励※縺ソ縺ヲ縺上□縺輔>縲

npm update

sh: 1: node: Permission denied

npm run dev 繧ウ繝槭Φ繝牙ョ溯。梧凾縺ォ逋コ逕溘@縺溘お繝ゥ繝シ縺ァ縺吶ゅ励Ο繧ク繧ァ繧ッ繝医ョ繝代シ繝溘ャ繧キ繝ァ繝ウ繧池oot縺九i螟画峩縺励◆縺薙→縺悟次蝗縲

sh: 1: node: Permission denied

繧ウ繝槭Φ繝峨r螳溯。後☆繧 root 繝ヲ繝シ繧カ縺ォ蜷医o縺帙※繝励Ο繧ク繧ァ繧ッ繝医ヵ繧ゥ繝ォ繝縺ョ讓ゥ髯舌r螟画峩縺励∪縺吶

chown root:root myapplication

繧ウ繝。繝ウ繝医r谿九☆