【Windows】Laravel開発環境をDockerで構築する(Laradock利用)

Windows環境で、Laravelのローカル開発環境を作ろうと思い、Dockerで作成してみることにしたので、そのメモ。

前提:
Windows 10 Home エディションではDocker使えない!
  1. Docker for Windowsのダウンロード
  2. Hyper-VとContainersを有効化
  3. Docker for Windowsのインストール
  4. Laradockのインストール
  5. ブラウザで表示確認
  6. Laravelのインストール

Docker for Windowsのダウンロード

まずは、Docker for Windowsをダウンロードする。

Docker Desktop for Windows – Docker Hub
https://hub.docker.com/editions/community/docker-ce-desktop-windows/

Docker for Windowsダウンロードリンク

ダウンロードリンクにアクセス後、上記ボタンをクリックするとダウンロードが開始される。

Hyper-VとContainersを有効化

つぎに、Windowsの機能のうち、Hyper-VContainersを有効化する。

Windowsの機能の有効化または無効化

コントロールパネルにアクセスし、プログラムと機能の「Windows の機能の有効化または無効化」をクリックする。

Hyper-VとContainersの有効化

Hyper-Vとは?

Hyper-Vとは、Windowsが提供するハイパーバイザ型の仮想化システム。

仮想化システムについては、以下参照。
仮想環境について | Output48

Containersとは?

Windowsでコンテナ型の仮想化システムを構築する機能。
なんでハイパーバイザ型のHyper-Vも有効化する必要があるのか?と思った方は、以下参照。

Windows 10 上の Windows コンテナーおよび Linux コンテナー
https://docs.microsoft.com/ja-jp/virtualization/windowscontainers/quick-start/set-up-environment?tabs=Windows-10-Client

有効化後、Windowsの再起動を求められる

機能の有効化後、Windowsを再起動する。

Docker for Windows のインストール

ダウンロードしたDocker for Windowsのインストーラをダブルクリックしてインストールを始める。

Docker for Windows インストール01

最初の画面。
上から順にGoogle翻訳にぶち込むと…

Enable required Windows Features
必要なWindows機能を有効にする
Add shortcut to desktop
デスクトップにショートカットを追加
Use Windows containers instead of Linux containers(this can be changed after installation)
Linuxコンテナーの代わりにWindowsコンテナーを使用します(これはインストール後に変更できます)

1個目は、Hyper-VとContainersのことだと思われる。
試してないけど、Docker for Windowsのインストール前に自分でやらなくても良かったかもしれない…。

2個目はそのまんま。

3個目は後で変えられるとのことなので、一旦デフォルトのままチェックなしで進める。

Docker for Windows インストール02

ばっふぁー

Docker for Windows インストール03

通信環境にもよるだろうけど、大体1分くらいで完了。
<注意!>「Close and log out」をクリックすると、Windowsからサインアウトするので、すべてのアプリケーションを終了してからクリックすること!

インストール後、サインインすると、Dockerが立ち上がる。

Docker for Windows インストール04

Laradockのインストール

Laradockのインストール前に、作業フォルダを作成する。
(例.C:\docker)

コマンドプロンプトを立ち上げて、作業フォルダに移動する。

> cd c:/docker

以下のコマンドでLaradockをクローンする。

C:\docker> git clone https://github.com/laradock/laradock.git

クローンが成功すると、laradockフォルダが生成される。

Laradockのクローン

Laradockの初期設定

生成されたlaradockフォルダへ移動する。

C:\docker> cd laradock

ここからはLaradockの公式手順を参考に。

C:\docker\laradock> copy env-example .env
(コマンドプロンプトで実行しているためcp→copyに置き換え)

.envファイルを開いて、以下を追記する。

DB_HOST=mysql
REDIS_HOST=redis
QUEUE_HOST=beanstalkd

Laradock .envファイルの追加項目

各種コンテナを起動する。

C:\docker\laradock> docker-compose up -d nginx mysql phpmyadmin redis workspace

途中、共有確認が出てきたら「Share it」をクリックする。

Laradock Share it

※起動エラーが出たら
【Windows】Laradockのコンテナ起動でエラーが出る… | Output48

ブラウザで表示確認

デフォルトの.envファイルだと、ドキュメントルートは以下のようになっている。

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../

# Point to where the `APP_CODE_PATH_HOST` should be in the container
APP_CODE_PATH_CONTAINER=/var/www

つまり、laradockフォルダと同階層にファイルを放り込めば表示されるのでは?

ということで適当に作ったhtmlファイルを置いてみると…

nginxで404 Not Found

あり?404エラーになっちゃう。

# Point to the path of your applications code on your host
APP_CODE_PATH_HOST=../public/

# Point to where the `APP_CODE_PATH_HOST` should be in the container
APP_CODE_PATH_CONTAINER=/var/www/public/

上記設定の状態で、publicフォルダの下にindex.htmlを入れておくとちゃんと表示される。

?よく分からんが、laradockフォルダと同階層をドキュメントルートにするとうまく表示されないっぽい。

Laravelのインストール

あとはLaravelを任意のフォルダにクローンしてきて、Laradockの.envファイルでドキュメントルートに設定すると起動できる。(眠くなってきたので最後は適当)

投稿者: Output48

中学生の時に初めてHTMLに触れてからホームページ制作を独学で始める。 ベンチャー企業の営業、大手企業のPG・SEを経て、独立。 現在はとある企業のCTOと、変な名前の会社の社長をしてる。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください