Laravel v10を自前のDocker Composeで使用するためのテンプレ用プロジェクトです。
- バックエンド -> backendコンテナ [ GraphQL on Laravel ]
- フロントエンド -> frontendコンテナ [ Apollo Client on Vite ]
※ このプロジェクトでは、あえて.gitignore
にて/src
ディレクトリを捕捉しないよう設定しています。(必要に応じて指定を削除してください)
.envファイルの以下のオプションを設定します。
- LARAVEL_BREEZE_FRONTEND_OPTION(Laravel Breezeのフロントエンドオプション。)
- APOLLO_CLIENT_TEMPLATE_OPTION(Viteの言語オプション。)
srcフォルダを作成します。
srcフォルダには、以下の2つのコンテナで使用するソースファイルが含まれます。
- backend(Laravel v10プロジェクトファイル一式)
- frontend(Viteを中核としたフロントエンドファイル一式)
cd script/init/
./create_src.sh
srcフォルダを削除したい場合にのみ実行します。
cd script/init/
./remove_src.sh
/src/backend/config/cors.phpを編集する
https://lighthouse-php.com/master/getting-started/configuration.html#cors https://developer.mozilla.org/ja/docs/Web/HTTP/CORS
Apollo ClientからGraphQLエンドポイントを使用するために必要な設定です。
return [
- 'paths' => ['api/*', 'sanctum/csrf-cookie'],
+ 'paths' => ['api/*', 'graphql', 'sanctum/csrf-cookie'],
...
];
コンテナビルド
cd script
./build.sh
コンテナ立ち上げ
docker compose up --build
docker compose up
テーブル作成(最初のみ)
docker compose up
を実行して各コンテナが立ち上がっていることが前提。
docker compose exec -u $(id -u):$(id -g) backend php artisan migrate
usersテーブルにレコードを追加
docker compose exec backend php artisan tinker
\App\Models\User::factory(10)->create();
cd script
./down_clear.sh
Laravel Breeze
http://localhost
Laravel GraphQL クライアント
http://localhost/graphiql
Laravel Horizon
http://localhost/horizon
Docker ComposeでGraphQL環境構築。[バック = Laravel v10] [フロント = Apollo Client] https://qiita.com/perilla/items/36b51751e25d3a30b9b5