こんにちは。ゆうきです。
Laravel Sailはコマンド一発で必要なdockerのコンテナを作ってくれたりと便利ですよね〜。
ただ、今回自宅で使っているメインPCとは別のMacbookで開発しようとしたところ、環境構築に意外と手間取ったので備忘として環境構築の手順と、詰まったところを残しておこうと思います。
まずはざっくりと手順を記載します。
- gitから対象のリポジトリをクローンしてくる
- Laravelプロジェクトのルートディレクトリに入って、必要なファイル達をダウンロードする
- .envファイル設定する
- コンテナをビルドして立ち上げる
こんな感じの手順です。
以下ステップごとに詳しく手順を残していきます。
STEP1:gitから対象のリポジトリをクローンしてくる
何はともあれリポジトリをクローンします。
git clone コマンドでプロジェクトをダウンロードします。
STEP2:Laravelプロジェクトのルートディレクトリに入って、必要なファイル達をダウンロードする
さて、Laravel Sailではデフォルトでvendor配下のファイル達は.gitignoreに指定されています。
つまりgitからクローンしてきただけではLaravel本体はまだインストールされていない状態になっています。
プロジェクトのルートディレクトリに入ってから、下記コマンドでLaravelの本体と、その他必要なファイルをダウンロードしましょう。
docker run --rm \
-u "$(id -u):$(id -g)" \
-v "$(pwd):/var/www/html" \
-w /var/www/html \
laravelsail/php82-composer:latest \
composer install --ignore-platform-reqs
STEP3:.envファイル設定する
さて、お次はSailがコンテナをビルドする際に使用する.envファイルを設定していきます。
基のPCで使用していた.envファイルを配布できるなら、配布した.envファイルをプロジェクトのルートディレクトリ配下に設置するだけで済むのですが、今回はデフォルトで用意されている.env.exampleファイルを使用した設定方法を記載します。
まずは下記コマンドで.env.exampleファイルをコピーします。
cp .env.example .env
そして作成された.envファイルのDB設定関連の箇所を下記の通り設定します。
... 省略
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=hoge
DB_USERNAME=sail
DB_PASSWORD=password
... 省略
設定する項目は4項目です。
特に重要なのはDB_HOSTとDB_USERNAMEです。
DB_HOSTはデフォルトでは「127.0.0.1」に設定されているので、これをmysqlと設定して、mysqlコンテナを見に行くように設定します。
また、DB_USERNAMEも最初は「root」と設定されていると思いますが、ここもrootのままだと動かなかったので、他のユーザー名に変更しておきます。
その他変更が必要なところがあれば都度編集してください。
STEP4:コンテナをビルドして立ち上げる
ここまでできたらあとは下記コマンドでコンテナをビルドするだけです。
./vendor/bin/sail up
これでlocalhostにアクセスするとアプリが起動していることが確認できると思います。
自分の場合は.envを設定する前にコンテナをビルドしてしまったので、DB接続関連でエラーが出まくって詰まりました。
今回記載した手順の通りにやることで、今後不要なエラーが避けれると思う。。。
Laravel本体はgit cloneとは別にインストールする必要がある。
あとコンテナビルド時に.envの設定を参照しているから、先に.envを設定しよう!
ということで、現場からは以上です〜。
I am extremely impressed with your writing skills as well as with the layout
on your blog. Is this a paid theme or did you modify it yourself?
Anyway keep up the excellent quality writing,
it is rare to see a great blog like this one these days.