Laravelのdocker環境を作った

November 07, 2021
Laravel / Docker / PHP

仕事でLaravelをよく触るのですが、自分で0から環境構築したことがなかったのでやってみました。マイグレーション・テストデータ投入、そしてGetとPostのAPIを一本ずつ作ったので動作確認もできます。

github

https://github.com/chanfuku/docker-laravel-nginx-mysql

各種ミドルウェアやFWの詳細です。※2021/11/07時点

php 8.0.12
nginx 1.21.3
mysql8.0
composer 2.1.11
laravel 8.65

以下の手順でGetとPostのAPIを投げるところまで確認できます。

0. リポジトリをクローンしてくる
git clone https://github.com/chanfuku/docker-laravel-nginx-mysql.git

1. コンテナ起動 ※初回は5分ほどかかります
cd docker-laravel-nginx-mysql && docker-compose up -d

2. phpコンテナに入る
docker-compose exec php bash

3. 必要なパッケージをインストール
cd /var/www/laravel && composer install

4. /var/www/laravel/.envを作成し、下記を記入する。
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=mysql
DB_USERNAME=mysql
DB_PASSWORD=mysql

5. マイグレーション実行
cd /var/www/laravel && php artisan migrate

6. テストデータ投入
cd /var/www/laravel && php artisan db:seed

7. メモ取得APIを実行
curl localhost/api/note/1

8. メモ登録APIを実行
curl -X POST -H "Content-Type: application/json" -d '{"title":"あああ", "body":"いいい\nううう"}' localhost/api/note

本当は、ここから更に

  • AWS ECSにデプロイしたり、
  • コードパイプラインを作ったり、
  • RDSインスタンスを書き込み専用・読み込み専用に分けたり、

というところまでやってみたかったのですが、そこは結構時間がかかるのでまずはここまでとします。


Profile picture

React, Vue, TypeScript, Node.js, PHP, Laravel, AWS, Firebase, Docker, GitHub Actions, etc...