この記事の目次
chevron_right
事象
chevron_right
docker-composeファイルの例
chevron_right
vite.config.jsの設定
chevron_right
参考
事象
よく、Laravelなどの解説サイトではPHPとNodeのプロセスを1つのコンテナで動かしていることが多いです。
ただ、1コンテナ1プロセスの原則があるので、私はコンテナでの開発環境をPHPとNodeで分けています。
このとき、Viteのホットリロードがされず、npm run dev
が使えない問題があったのでそれを調べていました
docker-composeファイルの例
以下のようにapp(PHPのコンテナ)とnode(Nodeコンテナ)を分けています。
ポイントとしては、Nodeのコンテナでviteが利用する5173
ポートを開放しておくことです。
services:
app:
build:
dockerfile: ./docker/php-fpm/Dockerfile
volumes:
- ./web/:/work
depends_on:
- node
node:
image: node:21
tty: true
volumes:
- ./web/:/work
working_dir: "/work"
ports:
- "5173:5173"
vite.config.js
の設定
vite.config.js
を以下のように設定してあげます。
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
],
server: {
hmr: {
host: 'localhost', // 開発環境のdockerのhostを設定してあげる
},
watch: {
usePolling: true, // WindowsのWSL2でも動くように設定
}
}
});
参考
この記事を書いた人
Nな人(えぬなひと)。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。
Nは本名から取っています。
Laravelが大好きなPHPerで、WEBを作るときはLaravelを技術スタックに絶対推すマン。
PHP、Pythonと、昔はperlを書いていたP言語エンジニア。
最近はNimを書いたりしています。