たいきゅんの日記

公務員試験失敗から這い上がれ!気ままに更新ブログ

Laravel+Nginx+PostgreSQLのDocker環境を作成する-コンテナ立ち上げからlaravelのトップページを開くまで-

こんにちは。たいきゅんです。

今回はLaravel+Nginx+PostgreSQLのDocker環境を作成する-コンテナ立ち上げまで-の続きの記事になります。

コンテナを立ち上げるまでは完了していることを前提に、composerを使ってLaravelをインストールし、DBと接続するまでの設定を書いていきます。

 

1. laravelのインストール

 

phpコンテナ(サービス名はappで設定)したコンテナに入ります。

docker-compose exec app bash

WORKDIRで設定したとおり、下記のような表示になると思います。

root@b0b05f381054:/var/www/app# 

 

ここでcomposerを使ってLaravelをインストールします。

composer create-project laravel/laravel .

今回はカレントディレクトリにlaravelをインストールしたかったので、.で設定しました。プロジェクト名を別途設定したい場合は、プロジェクト名を設定して上記コマンドを実行してください。

 

2. 画面の確認

 

Laravelのダウンロードが完了したら、localhost:80にアクセスして下記画面が表示されるか確認しましょう。

Lravelトップページ

確認されなかったら、ログを見てエラー解決してください。

 

3.データベース接続を行う。

DBコンテナと接続を行います。

PostgreSQLコンテナと接続するために、1でダウンロードしたLaravelプロジェクト内にある、.envファイルを編集します。

 

.env(変更後)

...
...
DB_CONNECTION=pgsql
DB_HOST=db
DB_PORT=5432
DB_DATABASE=test
DB_USERNAME=admin
DB_PASSWORD=password
...
...

 

.envファイルに上記項目があるので設定を変更しましょう。

 

DB_CONNECTION: DBMSの設定。今回はPostgreSQLなのでpgsqlと記載

DB_HOST:DBコンテナ名。今回はdbと設定。

DB_PORT: docker-compose.ymlで設定したportを設定

DB_DATABASE: docker-compose.ymlで設定した初期データベース名を設定

DB_USERNAME: docker-compose.ymlで設定したデータベースユーザー名を設定

DB_PASSPORD: docker-compose.ymlで設定したパスワードを設定

 

今回はPostgreSQLで実行しますが、MySQLコンテナにしたい場合も基本的に同じで、

DB_CONNECTIONや、imageをMySQLに沿ったものに設定すればできると思います。

 

こちらを変更したらマイグレーションを実行します

php artisan migrate

コマンド実行後、エラーが出てなかったらDB接続ができていることになります。

マイグレーションができなかったら、設定関連のミスだと思うので、.envファイルとdocker-compose.ymlを中心に確認してみてください。

 

マイグレーションができたら環境構築が完了です。

 

以上になります。

質問等ございましたら、ご連絡頂ければ分かる範囲でお答えします!!

間違っていたらして頂けますと幸いですmm。

 

最後まで読んで頂きありがとうございました!!