LoginSignup
4
2

More than 3 years have passed since last update.

docker環境のLaravelでnpm run hotを動かしホットリロード

Last updated at Posted at 2020-06-16

Docker x Laravel x Vueを使ってHMRをやってみる

webpack.mix.jsを編集

  • プロキシはビルドインサーバのデフォルトポート8000を指定。
  • ホストは0.0.0.0を指定。ホスト機からDockerコンテナにアクセスできるようにするため。
webpack.mix.js
const mix = require('laravel-mix');
・・・・・・
・・・・・・
//// ここから ////
mix.webpackConfig({
  devServer: {
    host: '0.0.0.0',
    proxy: {
      '*': 'http://localhost:8000'
    }
  }
});
//// ここまで ////
・・・・・・
・・・・・・

docker-compose.ymlを編集

ホストとコンテナのポートは8080を指定。webpack-dev-serverのデフォルトポート。
ホットリロードを利用するときはこちらのポートからアクセスする。

docker-compose.yml
version: '3'
services:
  php:
    container_name: php
    build:
・・・・・・
・・・・・・
    #### ここから #####
    ports:
      - 8080:8080
    #### ここまで #####
    volumes:
・・・・・・
・・・・・・
#  nginxなどのWebサーバは使わず、ビルドインサーバを使うのでコメントアウト。
#  nginx:
#    image: nginx
#    container_name: nginx
#    ports:
#      - 80:80

動かしてみる

ターミナルを2つ用意する。

bash1
docker-compose up -d
# xxxxxはコンテナ名を指定。
docker-compose exec xxxxx php artisan serve
bash2
docker-compose exec xxxxx npm run hot
#  DONE  Compiled successfully と表示されるまで待つ

http://localhost:8080/ にアクセスしてホットリロードできました。

4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2