手順をすべて紹介。Windows環境にLaravel×Dockerで環境構築する方法
目次
こんにちは、堀部です。
最近Laravelを触り始めたのでDockerと組み合わせて環境を作っていきたいと思います。
環境は以下の通りです。
- ホスト側
- Windows 10 Home
- Apache
- 2系
- PHP
- 7.4
- PostgreSQL
- 12
今回はLaravelをDockerコンテナで動かすための環境設定を行っていきます。
必要ファイルの準備
任意のフォルダに以下のようにファイルを作成します。

一つずつ作成するのが手間なので、作成したいフォルダでコマンドプロンプトを起動して以下のコマンドを実行すると同じフォルダ構成でファイルが作成されます。
mkdir docker\app mkdir docker\db mkdir src type nul > docker-compose.yml type nul > docker\app\Dockerfile type nul > docker\app\php.ini type nul > docker\app\000-default.conf
仮想環境のインストール
今回はWindows 10のHomeを使用しますのでWSL2をインストールします。
もしPro版を使っている場合はHyper-Vが使えますので、そちらを有効にすることで同じことが実現できます。
WSLのインストールはWindows PowerShellを管理者モードで起動して、wsl –installを実行して再起動するだけでOKです。

これでUbuntuもインストールされます。

インストール後はディストリビューションの既定のバージョンをWSL2に変更しておきます。
wsl --set-default-version 2
Dockerのインストール
以下のサイトからDocker Desktopのインストーラをダウンロードしてインストールします。
https://docs.docker.com/desktop/windows/install/
「Install required Windows components for WSL 2」のチェックは入れたままで大丈夫です。
Hyper-Vを使用する場合はチェックを外します。

各種設定ファイルの作成
最初に作成した空ファイルに設定を追加していきます。
今回は最低限のものしか記載していないため、必要に応じて追加してください。
docker-compose.yml
services:
app:
container_name: php-apache
build:
context: ./docker/app
ports:
- '8080:80'
volumes:
- ./src/:/var/www/
- ./docker/app/000-default.conf:/etc/apache2/sites-enabled/000-default.conf
- ./docker/app/php.ini:/usr/local/etc/php/php.ini
Dockerfile
FROM php:7.4-apache # composerのインストール COPY --from=composer:latest /usr/bin/composer /usr/bin/composer # 各種必要なライブラリのインストール RUN curl -fsSL https://deb.nodesource.com/setup_15.x | bash \ && apt-get update && apt-get install -y zip unzip nodejs
最終的にフロントエンドをVue.jsで構築したいため、nodejsを入れています。
000-default.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/public
<Directory /var/www/public>
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
php.ini
[Date] date.timezone = "Asia/Tokyo" [mbstring] mbstring.internal_encoding = "UTF-8" mbstring.language = "Japanese"
dockerコンテナの起動
以下のコマンドでコンテナを起動します。
docker-compose up -d
正常に起動するとDocker Desktopで以下のように表示されます。
Laravel プロジェクトを作成
最後にLaravelのプロジェクトを作成します。
先ほど作成したコンテナ内に以下のコマンドで入ります。
docker-compose exec app /bin/bash
続けてLaravelプロジェクトを作成するためのコマンドを実行します。
composer create-project laravel/laravel . chmod 777 -R storage/
正常に実行されるとプロジェクトフォルダ内にLaravelのプログラムが自動で作成されます。

プロジェクトの作成が完了したら、以下のURLにアクセスしてLaravelの画面が表示されれば終了です。
http://localhost:8080/
まとめ
いかがでしたでしょうか。
今回はLaravelのインストールまででしたが、次回データベースとフロントエンドの構築を行っていきたいと思います。
《関連記事》