2026/06/12

Docker Compose と Composer を忘れない

# Docker Compose と Composer の違い
| | Docker Compose | Composer |
|---|---|---|
| 役割 | 複数の**コンテナ**を管理するツール | PHPの**パッケージ(ライブラリ)**を管理するツール |
| 対象 | コンテナ・インフラ | PHPのコードレベルの依存関係 |
| 設定ファイル | `docker-compose.yml` | `composer.json` |
| コマンド例 | `docker compose up` | `composer install` |
| 実行場所 | ホスト側(EC2上) | コンテナ内(PHPが動く環境) |
| 用途 | 「アプリを動かす箱(コンテナ群)を準備する」 | 「アプリの中で使う部品(ライブラリ)を揃える」 |

## イメージ図
EC2(ホスト) docker compose ←─ docker-compose.yml 起動・管理 appコンテナ composer ←─ composer.json インストール vendor/(Laravelライブラリ群)
# `vendor/`ディレクトリとComposerの関係

## `vendor/`とは

**Composerでインストールした全PHPパッケージの格納場所**。Laravel固有のものではなく、Composerを使うPHPプロジェクト共通の仕組み。

```
vendor/
├── laravel/
│   └── framework/      ← Laravel本体もここにある(1パッケージとして)
├── symfony/             ← Laravelが内部で使うコンポーネント
├── monolog/             ← ログ出力ライブラリ
├── autoload.php         ← 自動読み込みの起点ファイル
└── composer/
```

「**Laravel = vendor/の中の1パッケージ**」という位置付け。Laravelを使わないPHPプロジェクトでもComposerを使えば`vendor/`は作られる。

---

## 各ファイル・コマンドの役割

| 要素 | 役割 |
|---|---|
| `composer.json` | 「何を使うか」のリスト(依存パッケージの定義) |
| `composer.lock` | 「実際にインストールされたバージョン」の記録 |
| `composer install` | `composer.json`/`composer.lock`に基づき`vendor/`を生成 |
| `composer require` | 新しいパッケージを追加して`composer.json`に記録+インストール |
| `vendor/` | 上記に基づいてダウンロードされた全パッケージの実体 |

---

`vendor/`は基本的に**Gitにコミットしない**(`.gitignore`対象)。サイズが大きく、`composer.json`/`composer.lock`があれば誰でも再現できるため。

0 件のコメント:

コメントを投稿

人気の投稿