手順をすべて紹介。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のインストールまででしたが、次回データベースとフロントエンドの構築を行っていきたいと思います。
 
 
 
 
《関連記事》

記事をシェア
MOST VIEWED ARTICLES