PHP × Node.js 開発環境を一体化!Docker でラクラク Laravel 開発
Docker 上で PHP と Node.js の両方が使える便利なイメージを紹介します。softjpn/laravel-nodejs-dev は、php:8.2-fpm をベースにして、Laravel や Composer、Git、Node.js & npm などの主要ツールをあらかじめインストールしたものです。このイメージを使えば、ローカル環境にこれらのツールをひとつずつインストールする必要がありません。
このイメージに含まれているもの
- PHP 8.2
- Composer (PHP の依存管理)
- Laravel Installer (Laravel プロジェクトの新規作成が簡単)
- Git (バージョン管理)
- Node.js & npm (JavaScript まわりの開発に必要)
これらがオールインワンで入っているため、プロジェクトに合わせて PHP だけでなくフロントエンド系のビルドやツールもすぐに扱えます。
使い方のポイント
どのコマンドでも共通しているのは、-v "$PWD:/app"
でローカルのカレントディレクトリをコンテナ内の /app
にマウントする点です。コンテナ内で作成・編集されるファイルは、同じディレクトリ内に直接反映されます。
1. 新しい Laravel プロジェクトを作る
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev laravel new example-app
-
laravel new example-app
は Laravel Installer を使ってexample-app
フォルダに新規プロジェクトを作成。 -
--rm -it
は終了時にコンテナを自動削除し、対話モードで実行するオプションです。
2. 簡単な PHP スクリプトを実行する
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev php helloworld.php
- ローカルの
helloworld.php
をコンテナ内で実行できます。
3. Node.js スクリプトを実行する
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev node ./helloworld.js
- Node.js があらかじめ入っているので、JavaScript の実行も可能です。
4. PHP のバージョンを確認する
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev php --version
- 現在のコンテナに入っている PHP のバージョンが表示されます。
5. Git を使う
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev git --version
- バージョン確認だけでなく、commit や push/pull などのコマンドも実行可能。
6. npm のバージョンを確認する
docker run --rm -it -v "$PWD:/app" softjpn/laravel-nodejs-dev npm --version
- npm コマンドも同様に利用できます。
npm install
やnpm run dev
なども自由に実行可能です。
補足情報
-
デフォルトコマンド
特にコマンドを指定しない場合、コンテナはphp-fpm
を起動します。Laravel を Docker Compose で動かす際に便利です。 -
コンテナの作業ディレクトリ
/app
がデフォルトになっています。必ず-v "$PWD:/app"
を付けてローカルのフォルダをマウントしましょう。 -
エントリーポイント
docker-php-entrypoint
を使っているため、PHP 関連のコマンドが正しく初期化されます。
このイメージは、Laravel と Node.js をまとめて使えるようにした軽量な開発環境です。複数のツールをあちこちインストールする必要がなく、しかも更新も自動で追従しやすいので、手元の環境を汚さずに開発を進められます。ぜひ試してみてください。
DockerfileSource Code on Github