GitHubを利用してlaravelのプロジェクトを管理している場合、開発環境のすべてのファイルは共有されません。
別の開発環境にクローンする場合は、足りないファイルを作成する必要があります。
以下の手順で行います。
- 開発に必要なファイル(vendorディレクトリ等)を復活させる
- .envファイルを作成する
- マイグレーションを行う
- Vite のビルドを実行する
開発に必要なファイルの復活
プロジェクトのフォルダに移動して、以下のコマンドを実行します。
docker run --rm -v $(pwd):/opt -w /opt laravelsail/php82-composer:latest bash -c "composer install"
このコマンドは、一時的に Docker コンテナを起動し、ホスト側の現在のディレクトリ($(pwd)
)をコンテナ内にマウントして、その中で composer install
を実行するものです。
実行が完了したら、コンテナは自動的に削除されます。各オプションの意味は以下のとおりです。
docker run --rm
- 新しくコンテナを起動するコマンドです。
--rm
オプションにより、コンテナが停止した後に自動的に削除されるため、使い捨てのコンテナとして利用できます。
-v $(pwd):/opt
- ボリュームマウントを指定しています。
$(pwd)
は「ホスト上の現在の作業ディレクトリ(カレントディレクトリ)」を意味し、それをコンテナ内の/opt
というパスにマウントします。- これにより、ホスト側のファイル(Laravel プロジェクトなど)がコンテナ内からも
/opt
ディレクトリとして参照・操作できます。
-w /opt
- コンテナ内での「作業ディレクトリ(カレントディレクトリ)」を
/opt
に設定します。 - 先述のマウントにより、ここはホスト側のソースコードが見える場所となります。
- コンテナ内での「作業ディレクトリ(カレントディレクトリ)」を
laravelsail/php82-composer:latest
- 起動するコンテナの イメージ です。
- PHP 8.2 および Composer がインストールされたイメージで、Laravel Sail 用に用意されているものです。
bash -c "composer install"
- コンテナ内で実行するコマンドです。
bash -c
でシェルコマンドを指定し、その中でcomposer install
を実行しています。- Composer はコンテナに最初からインストールされているため、ホスト環境に Composer が無くても実行できます。
やっていることの概要
- Docker イメージ(
laravelsail/php82-composer:latest
)で一時的なコンテナを立ち上げる。 - ホストのカレントディレクトリをコンテナ内の
/opt
にマウントする。 - コンテナ内の作業ディレクトリを
/opt
に設定する。 - その場所で
composer install
を実行する。 - 終了後にコンテナを破棄する(
--rm
により自動で削除)。
メリット
- ホスト側に Composer や PHP をインストールしていなくても、Docker イメージを利用して Composer の処理が実行できる。
- 一時的なコンテナなので、ホスト側の環境を汚さない。
- Laravel のプロジェクトにおける依存パッケージのインストールに便利で、CI/CD やチーム開発でも同じ環境・同じバージョンで Composer を実行しやすい。
要するに、このコマンドは「Docker を使ってローカルコードを読み込み、コンテナ内で Composer の処理を行って依存パッケージをダウンロード・更新し、最後にコンテナを削除する」という一連の作業をまとめてやっている、ということです。
.envファイルを作成する
環境に合わせた.envファイルを作成します。
環境が同じならば元の環境のものをコピーしてもOK。
マイグレーションを行う
データベースを作成するためにマイグレーションを行います。
Laravel Sailを起動
./vendor/bin/sail up
マイグレーションを行う
./vendor/bin/sail artisan migrate
Vite のビルドを実行する
./vendor/bin/sail npm run build
私の環境では、これを行わないと実行時にエラーになりました。
詳しくはこちらの記事を見てください。
この記事が参考になったら下の「参考になった」ボタンをお願いいたします。
では、良いLaravelライフを~
コメント