MENU

【M1, 2 Mac】Docker×Laravel Sailの環境構築

目次

Laravelの開発環境をDockerで構築

今回は、Dockerを使ったLaravelのローカル環境構築を備忘録としてまとめておきます。

開発環境に必要なものは(あくまで一例)?

OSLinux(ディストリビューション:Ubuntu)
DockerDocker for Mac
WebサーバNginx
データベースサーバMySQL
NoSQLRedis
フレームワークLaravel (Laravel Sail)
PHPパッケージ管理システムComposer
Node.jsパッケージ管理システムnpm
その他、Docker file, docker-compose.ymlなど

ちなみに、RedisComposernpmが何か気になる方は下記の記事を参考にしてみてください。

上記に色々書きましたが、Laravel Sailを利用することで、一瞬でDocker × Laravelの環境構築ができます

なぜなら、コマンドを一つ叩くだけでhttps://readouble.com/laravel/9.x/ja/installation.html)予め用意してくれた上記のような必要そうなファイルをインストールしてくれるからです。もちろん、あとから自分用にカスタマイズすることもできます。

Redisとは?

Composerとは?

npmとは?

全体の流れ

STEP
STEP
STEP
Dockerを準備

まずは、Docker for Macをインストール
https://docs.docker.jp/docker-for-mac/install.html

STEP
Laravelをインストール

プロジェクトを置きたい配下に移動

% cd /Users/home/workspace

下記のexample-appを作りたいディレクトリ名に変更

% curl -s "https://laravel.build/example-app" | bash

Laravel Sailを起動

cd example-app && ./vendor/bin/sail up

↓こんな感じになる

MacBook-Air example-app % pwd  
/Users/home/workspace/example-app
STEP
.env.example を.envにコピー(チーム開発では)
% cp .env.example .env

https://qiita.com/adgjmptwgw/items/c8980156b9395704517e

ここで、localhostで動作確認すると上記エラーが出るのでencryption keyを設定

https://qiita.com/ponsuke0531/items/197c76fcb9300d7c5f36
https://qiita.com/phper_sugiyama/items/ae308c2a61aa3dbc3bf3

STEP
sail コマンドを気持ちよく使うためにエイリアスを設定
% alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'

https://readouble.com/laravel/8.x/ja/sail.html

STEP
今回Vue.jsを使いたいので、セットアップ
% sail composer require laravel/ui

% sail php artisan ui bootstrap
% sail php artisan ui vue
# パッケージのインストールとプロジェクトのビルド
% sail npm install
% sail npm run dev

https://qiita.com/print_r_keeeng/items/544d14e4e0eab0508985

下記の公式でバージョンの対応を確認

https://github.com/laravel/ui

STEP
動作確認

http://localhost もしくは http://localhost:5173で動作確認

うまく表示された!! バグレベルに速い(゚∀゚)

ハマりポイント

sailコマンドを忘れない

公式では、php コマンドでコマンド叩いているが、dockerコンテナ内なので必ず、sailをつける

% php artisan migrate:fresh --seed

↓こっち!!

% sail php artisan migrate:fresh --seed

エラー:Please provide a valid cache path.

下記記事を参考にしてみるが…

% sail php artisan cache:clear

うまくいかず。。。

再度、下記記事を参考にすると解決!!
https://qiita.com/ponsuke0531/items/f0b68546068ac8922665

補足

エイリアスとは?

マウントとは?

artisanとは?

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次