Laravel開発環境をDockerで作成 「起動とプロジェクト作成」

前回

前回作成したDocker環境を用いて、プロジェクトの作成を行います。
Laravelプロジェクト作成は最初の一回のみとなりますが、Dockerの起動等は何度も行うことになると思います。

Dockerコンテナの起動

WSL内のDockerを起動する

WSLを起動し、WSL内でDockerを起動します。WSLはWindowsでDockerを使用するために使用しています。
Linuxのため、WSL内でのコマンドはMacでも共通で使用できると思います。
WinでWSL内に入るためには下記コマンドを実行します。

wsl

続いてWSLに先ほど作成したディレクトリを配置します。
今回はhomeディレクトリに配置していきます。

cd ~/docker-sample/

dockerコマンドを実行する際はdockerディレクトリ(docker-compose.ymlが配置されているフォルダ)に移動します。

cd docker

まずはコンテナのビルドを実行

docker-compose build --no-cache

–no-cacheを指定することで、キャッシュを利用しないビルドが可能です。
ビルドを行うタイミングは設定変更時などキャッシュを利用したくない場面が多いので、私はよくこのオプションを利用しています。

続いてコンテナの起動を行います。

docker-compose up -d

問題なく起動が出来ればDockerコンテナに入ります。今回はLaravelプロジェクトを作成するのでphpコンテナに入っていきます。

docker-compose exec laravel_docker_sample-php bash

/var/www/htmlというディレクトリに入ることになりますが、ここでプロジェクトを作成すると「/var/www/html/プロジェクト」となってしまい、1階層深くなってしまうので、1階層上のディレクトリでプロジェクトを作成します。

cd ../
composer create-project laravel/laravel lara_proj --prefer-dist

プロジェクト作成後、作成したプロジェクト内のファイルをすべて移動します。

cd lara_proj/
mv .[!.]* ..?* * ../html/

続いてプロジェクトディレクトリに移動し、Webサーバーに書き込み権限を付与します。
ログファイルやキャッシュなどが作成されるディレクトリはWebサーバーが書き込みを行うために権限を付与する必要があります。

cd ../html/
chmod -R 777 storage
chmod -R 777 bootstrap/cache

これでブラウザでlocalhostにアクセスするとLaravelのトップページが表示されます。

ひとまずこれでLaravelの開発が進められそうなので進めてみます。
また、開発中に改善点が出来たら追記します。