- Udemyのフルスタックエンジニアになるためのスキルの学び方を学習するためのレポジトリです
- PHP 8.3 + nginx + MySQL を使用した Laravel プロジェクト用の Docker 環境です。
- PHP: 8.3-fpm (Composer 2.7 含む)
- Web Server: nginx 1.25-alpine
- Database: MySQL 8.0
- Port: 80 (HTTP), 3380 (MySQL)
cp .env.example .env
# 必要に応じて.envを編集docker-compose up -dsrc/ ディレクトリに Laravel プロジェクトを配置してください。
- アプリケーション: http://localhost
# コンテナの状況確認
docker-compose ps
# ログの確認
docker-compose logs -f
# PHPコンテナに入る
docker-compose exec app bash
# Composer実行
docker-compose exec app composer install
# Artisanコマンド実行
docker-compose exec app php artisan migrate
# 環境の停止
docker-compose down
# 環境の完全削除(データベースも削除)
docker-compose down -v本番環境では以下を想定:
- Aurora MySQL(ローカルの MySQL は使用しないケースを想定)
# 本番環境での起動
docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d.
├── infra/
│ ├── mysql/ # MySQL設定
│ ├── nginx/ # nginx設定
│ └── php/ # PHP設定
├── src/ # Laravelプロジェクトを配置
├── docker-compose.yml # 開発環境設定
├── docker-compose.prod.yml # 本番環境設定
└── .env.example # 環境変数テンプレート
src/ディレクトリは空の状態です- 本番環境では CloudFront と ACM を使用することを推奨
- データベースの永続化は
db-storeボリュームで行われます
vite.config.js を下記のコードで 5173 ポートを Docker のコンテナの外からもアクセスできるように開ける
import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import tailwindcss from "@tailwindcss/vite";
export default defineConfig({
plugins: [
laravel({
input: ["resources/css/app.css", "resources/js/app.js"],
refresh: true,
}),
tailwindcss(),
],
server: {
host: "0.0.0.0",
port: 5173,
strictPort: true,
hmr: {
host: "localhost",
port: 5173,
},
},
});