Laravelの開発環境をDockerで構築
今回は、Dockerを使ったLaravelのローカル環境構築を備忘録としてまとめておきます。
開発環境に必要なものは(あくまで一例)?
・OS:Linux(ディストリビューション:Ubuntu)
・Docker:Docker for Mac
・Webサーバ:Nginx
・データベースサーバ:MySQL
・NoSQL:Redis
・フレームワーク:Laravel (Laravel Sail)
・PHPパッケージ管理システム:Composer
・Node.jsパッケージ管理システム:npm
その他、Docker file, docker-compose.ymlなど
ちなみに、Redis、Composer、npmが何か気になる方は下記の記事を参考にしてみてください。
上記に色々書きましたが、Laravel Sailを利用することで、一瞬でDocker × Laravelの環境構築ができます。
なぜなら、コマンドを一つ叩くだけで(https://readouble.com/laravel/9.x/ja/installation.html)予め用意してくれた上記のような必要そうなファイルをインストールしてくれるからです。もちろん、あとから自分用にカスタマイズすることもできます。
Redisとは?
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9UmVkaXMlRTMlODElQTglRTMlODIlQUQlRTMlODMlQTMlRTMlODMlODMlRTMlODIlQjclRTMlODMlQTUlRTMlODElQUIlRTMlODElQTQlRTMlODElODQlRTMlODElQTYlRTclOTAlODYlRTglQTclQTMlRTMlODIlOTIlRTYlQjclQjElRTMlODIlODElRTMlODElQTYlRTMlODElQkYlRTMlODElOUYlRTMlODAlODImdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWFlNWZjOTU5ZGY2Y2ZhYmQyNWJhNTY3Nzg2OWVmNzM2&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBTaGlydWJhJnR4dC1jb2xvcj0lMjMyMTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9MzYmdHh0LWFsaWduPWxlZnQlMkN0b3Amcz0yMTlmNTMzODc2MzIxZTQzMTE1NjE5NTQyZWFlZTcxYQ&blend-x=142&blend-y=486&blend-mode=normal&s=726ed5f9973ddb988120fdd3af802b9f)
Composerとは?
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9Y29tcG9zZXIlRTMlODElQTglRTMlODElQUYmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWRkYzA5ZTFmMjk0OGZmYTBlNzQwOWE5YzRkODU0NjM2&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDBhdHdhdGEmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zNiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWUxZTBkMTAzOWQxZmIzMzJmMDdhMTM5MTk2MWRiZDBh&blend-x=142&blend-y=486&blend-mode=normal&s=0d69f2e26f122d35b876c210a5b0c0ec)
npmとは?
全体の流れ
プロジェクトを置きたい配下に移動
% 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
% cp .env.example .env
https://qiita.com/adgjmptwgw/items/c8980156b9395704517e
![](https://yuuu-daily.com/wp-content/uploads/2022/10/e01731c18dd05ce13f8d1e59beafd56a-1024x631.png)
ここで、localhostで動作確認すると上記エラーが出るのでencryption keyを設定
https://qiita.com/ponsuke0531/items/197c76fcb9300d7c5f36
https://qiita.com/phper_sugiyama/items/ae308c2a61aa3dbc3bf3
% alias sail='[ -f sail ] && bash sail || bash vendor/bin/sail'
% 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://yuuu-daily.com/wp-content/uploads/2022/10/d093ce666556fbdd2266099acaa3555e-1-1024x482.png)
![](https://yuuu-daily.com/wp-content/uploads/2022/10/25d5fe7ee5c94d4c0629b5b2650ca5c2-815x1024.png)
うまく表示された!! バグレベルに速い(゚∀゚)
ハマりポイント
sailコマンドを忘れない
公式では、php コマンドでコマンド叩いているが、dockerコンテナ内なので必ず、sailをつける
% php artisan migrate:fresh --seed
↓こっち!!
% sail php artisan migrate:fresh --seed
エラー:Please provide a valid cache path.
![](https://yuuu-daily.com/wp-content/uploads/2022/09/b00f1e50efdba626fc08895c3304ffa2-1024x117.png)
下記記事を参考にしてみるが…
% sail php artisan cache:clear
![](https://yuuu-daily.com/wp-content/uploads/2022/09/a782fa957a2a56f5167023b473074160.png)
うまくいかず。。。
再度、下記記事を参考にすると解決!!
https://qiita.com/ponsuke0531/items/f0b68546068ac8922665
補足
エイリアスとは?
![](https://qiita-user-contents.imgix.net/https%3A%2F%2Fcdn.qiita.com%2Fassets%2Fpublic%2Farticle-ogp-background-412672c5f0600ab9a64263b751f1bc81.png?ixlib=rb-4.0.0&w=1200&mark64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk3MiZoPTM3OCZ0eHQ9JUU0JUI4JTk2JUUzJTgxJUFFJUU0JUI4JUFEJUUzJTgxJUFFJUUzJTgyJUE4JUUzJTgzJUIzJUUzJTgyJUI4JUUzJTgzJThCJUUzJTgyJUEyJUUzJTgxJUFFYWxpYXMlRTglQTglQUQlRTUlQUUlOUEmdHh0LWFsaWduPWxlZnQlMkN0b3AmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZzPWQ3ZmMzOGEyZjc4ZjZhZDA2MWUyOTQ1YWUwZTI5OTE0&mark-x=142&mark-y=57&blend64=aHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZoPTc2Jnc9NzcwJnR4dD0lNDByZWlyZWlhcyZ0eHQtY29sb3I9JTIzMjEyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnM9ODMwNzQ3ZjMzMjg4MDQ1MjEwNTQzM2M1ZTc2NzQxYjE&blend-x=142&blend-y=436&blend-mode=normal&txt64=aW4g44Oh44OJ44OU44Ki5qCq5byP5Lya56S-&txt-width=770&txt-clip=end%2Cellipsis&txt-color=%23212121&txt-font=Hiragino%20Sans%20W6&txt-size=36&txt-x=156&txt-y=536&s=7771b3512b98823e17331cf6fa269660)
マウントとは?
artisanとは?
![](https://knowledge.cpi.ad.jp/.assets/thumbnail/catch3-1200wi.jpg)