「Laravel」タグアーカイブ

Windows環境でDockerを使ったLaravel開発環境の構築と移行方法


Docker を使えば、PHP8 + MySQL + Xdebug + Laravel といった開発環境を簡単に構築できる。この記事では、特に Windows 環境で Docker Desktop を利用する場合と、他のマシンに環境を移行する方法について解説する。

 Docker Desktop は必須か?

結論から言えば、Docker Desktop は必須ではない。Docker Desktop は Windows や macOS 環境で Docker を使いやすくするツールだが、以下の手順で Docker Desktop を使わない方法も可能だ。

Docker Desktop を使わない場合の手順

WSL2 (Windows Subsystem for Linux) をインストールする

    • Ubuntu などの Linux ディストリビューションを WSL2 にインストールする。

Docker を WSL2 上にインストールする

Docker サービスを手動で起動する

sudo apt update
sudo apt install docker.io docker-compose

sudo service docker start
sudo docker ps
sudo docker compose up -d

Docker Desktop を使うメリットとしては、GUI でコンテナを管理できたり、WSL2 との統合が容易であることが挙げられる。一方、システムリソースの消費が大きく、カスタマイズ性が低いデメリットもある。

Docker Desktop を使うメリットとしては、GUI でコンテナを管理できたり、WSL2 との統合が容易であることが挙げられる。一方、システムリソースの消費が大きく、カスタマイズ性が低いデメリットもある。

Docker イメージを使った開発環境の移行方法

Docker イメージとは?

Docker イメージは、OS、アプリケーション、設定ファイル、必要なライブラリなどをまとめたものだ。このイメージを使えば、他のマシンでも同じ開発環境を簡単に再現することができる。

イメージ作成から他のマシンへの移行手順

Docker イメージを作成する

docker commit <コンテナID> my-laravel-env

<コンテナID> は、docker ps で確認できるコンテナ ID を指定する。

イメージをエクスポートする

docker save -o my-laravel-env.tar my-laravel-env

イメージを .tar ファイルとしてエクスポートすることで、他のマシンに持ち運びやすくなる。

他のマシンでイメージをインポートする

docker load -i my-laravel-env.tar

エクスポートした .tar ファイルをインポートすることで、同じ Docker イメージが他のマシンでも使えるようになる。

コンテナを起動する

docker run -d -p 8080:80 –name my-laravel-container my-laravel-env

ソースコードは Docker イメージ内に含まれるのか?

イメージに含める場合

Dockerfile を使えば、Laravel プロジェクトや HTML、PHP などのソースコードを Docker イメージ内に含めることも可能だ。

FROM php:8.1-apache

WORKDIR /var/www/html

COPY . /var/www/html

RUN apt-get update && \
apt-get install -y zip unzip && \
curl -sS https://getcomposer.org/installer | php — –install-dir=/usr/local/bin –filename=composer && \
composer install

EXPOSE 80

ビルドコマンド

docker build -t my-laravel-image .

他のマシンにコピーする場合は、イメージをエクスポート・インポートすることで同じ環境が再現できる。

開発中はボリュームマウントが便利

開発中は、Docker イメージにソースコードを含めるよりも「ボリュームマウント」を使うほうが便利だ。

version: ‘3.9’
services:
app:
image: php:8.1-apache
container_name: my-laravel-app
working_dir: /var/www/html
volumes:
– ./my-laravel-project:/var/www/html
ports:
– “8080:80”
environment:
– APP_ENV=local

メリット

  • ホスト側のファイルを編集すれば、即座にコンテナ内に反映される。
  • Laravel のコード変更やデバッグが容易になる。

まとめ

  • Docker Desktop は必須ではないが、使うことでセットアップが簡単になる。
  • 開発環境を他のマシンに移行する場合、Docker イメージ を使えばスムーズ。
  • 本番環境では「イメージにソースコードを含める」方法、開発環境では「ボリュームマウント」がオススメ。

Docker を使いこなすことで、環境構築の手間を大幅に削減し、開発効率を上げることができるので、ぜひ試してみてください。