😇

Sail がうごきま Sen

2021/05/25に公開約1,400字

TL;DR

さて、Laravel公式のDockerの開発環境が提供されたわけですが、既存のアプリケーションにSailを導入したいと思う方はいるのではないでしょうか。

今回は、既存のLaravelアプリケーションに導入したが、SailがうごきまSenの人を助けるための記事となっています。


新規アプリケーションの作成を行いたい人はこちらの記事を参考にしてください。

流れはこう

Laravel Sailに関するドキュメントはこちらで確認することができます。

$ composer require laravel/sail --dev
$ php artisan sail:install
$ ./vendor/bin/sail up

ただ、この時に重要な点として、MySQLは .env ファイルに書かれている環境変数を元にビルドされるので、 .env ファイルとそれぞれの環境変数をセットしなければなりません。

環境変数を元にMySQLで使用されるものは、以下の三点になります。
以下三点はユーザが任意で決めるものとなります。

  • データベース名
  • データベースのユーザ名
  • データベースのパスワード

また、MySQLインスタンスに接続する際は、DB_HOSTmysql にしてください。

Once you have started your containers, you may connect to the MySQL instance within your application by setting your DB_HOST environment variable within your application's .env file to mysql.

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=example_app
DB_USERNAME=sail
DB_PASSWORD=password

.envを修正しないままビルドした場合

.envファイルで環境変数を適切にいれないまま、sailをビルドしてしまっては、あとから環境変数を変えても接続できません。その場合は、以下のコマンドを実行し、再度ビルドし直してください。

docker compose down --rmi all --volumes --remove-orphans &&
./vendor/bin/sail build --no-cache &&
./vendor/bin/sail up -d &&
./vendor/bin/sail artisan migrate

Discussion

ログインするとコメントできます