🐘

「`docker ps` で調べた **コンテナIDを直接指定して** Laravelのキャッシュクリアしたい」とき

に公開

コンテナIDを使ったキャッシュクリアコマンド

1. まずコンテナIDを確認

docker ps

例)こんなのが出てるとします:

CONTAINER ID   IMAGE              COMMAND              ...
abc123def456   my-laravel-app     "docker-php-entry…"  ...

この abc123def456 がコンテナIDです。


2. そのコンテナの中で artisan コマンドを実行

基本形はこれ 👇

docker exec -it <コンテナID> php artisan <コマンド名>

なので、Laravelのキャッシュ系はこう撃てます。

アプリキャッシュ削除

docker exec -it abc123def456 php artisan cache:clear

ルートキャッシュ削除

docker exec -it abc123def456 php artisan route:clear

コンフィグキャッシュ削除

docker exec -it abc123def456 php artisan config:clear

ビューキャッシュ削除(Blade)

docker exec -it abc123def456 php artisan view:clear

オプションの意味

docker exec -it abc123def456 php artisan cache:clear
        └─┬─ └┬┘ └───── コンテナID ┘ └── コンテナの中で実行するコマンド
          │    │
          │    └─ インタラクティブモード+擬似ターミナル
          └── exec = 実行
  • docker exec
    → すでに動いているコンテナの中でコマンドを実行する
  • -i
    → 標準入力を有効(interactive)
  • -t
    → 擬似ターミナルを割り当て(tty)

補足:docker compose 使ってる場合はサービス名でもOK

もし docker-compose.yml / docker compose を使っていて、

services:
  app:
    container_name: my-laravel-app

みたいな構成なら、コンテナIDじゃなくて サービス名 で叩くことも多いです。

docker compose exec app php artisan cache:clear
docker compose exec app php artisan route:clear
docker compose exec app php artisan config:clear
docker compose exec app php artisan view:clear

コンテナIDでやるパターンも、サービス名でやるパターンも覚えておくと、
現場どっちの書き方にも対応できるのでおすすめです 💪

Discussion