この記事はで読むことができます。
当ブログでは商品・サービスのリンク先にプロモーションを含みます。
ローカルのDockerでは動くのに、Cloud Runだとなぜか動かない…
DockerとCloud Runの違いがよくわからない
Difyのようなアプリをクラウドで動かす方法を知りたい
Difyのような便利なツールを、いざクラウド環境にデプロイしようとすると、思わぬ壁にぶつかることがあります。

ローカルPCのDockerで動いたものが、なぜCloud Runでは動かないんですか?

それは「動かす場所のルールや特性が全く違うから」です。
その疑問は、多くの方がつまずく非常に重要なポイントです。
結論から言うと、ローカルPCのDocker環境とGoogle Cloud Runは、根本的な仕組みや思想が大きく異なります。
この記事では、その違いを分かりやすい例え話で解説していきます。
- ローカルDockerとCloud Runの根本的な違い
- DifyがCloud Runでそのまま動かない理由
- クラウドでアプリを動かす際の考え方
【例え話】ローカルDockerは「一軒家」、Cloud Runは「カプセルホテル」
ローカルPCとCloud Run、この2つの環境の違いを「住む場所」に例えてみましょう。
ローカルPCのDocker = 家具付きの一軒家
あなたのPCで`docker-compose up -d`を実行する時、Difyという1つのプログラムが動いているわけではありません。
実際には、`docker-compose.yaml`という設計図に基づき、複数の専門家(コンテナ)たちが一つの家(あなたのPC)で生活を始めるイメージです。
- APIサーバーさん:アプリの頭脳。命令を処理する司令塔。
- Webサーバーさん:見た目(画面)を担当するデザイナー。
- Workerさん:時間のかかる作業を裏でこなす縁の下の力持ち。
- データベースさん:全てのデータ(会話履歴など)を記憶する金庫番。
あなたのPCという「一軒家」では、これらの専門家たちが24時間ずっと家の中にいて、いつでもお互いに会話できます。
特に重要なのがデータベースさんで、家の倉庫(PCのストレージ)に大切な情報をしっかり保管し続けることができます。
これが、ローカルPCでDifyが何の問題もなくスムーズに動く理由です。
Google Cloud Run = 超ハイテクな時間貸しカプセルホテル
一方、Cloud Runは「一軒家」ではなく、「カプセルホテル」のようなサービスです。
そして、このホテルには非常に特殊で重要なルールがいくつかあります。
1. 一部屋(一つのコンテナ)しか入れない
2. お客さん(アクセス)が来た時だけ部屋が出現する
3. 部屋は毎回新品になる(データを記憶できない)
これがDifyをCloud Runで動かせない、根本的な理由になります。一つずつ見ていきましょう。
ルール①:一部屋に一人まで
Cloud Runは、基本的に1つのサービスに対して1つのコンテナしか実行できません。
先ほどの専門家たち(API、Web、データベース…)を、全員まとめて一つの部屋に入れることはできないのです。`docker-compose`のように「全員まとめて面倒見て!」という命令は通用しません。
ルール②:アクセスがないとホテルごと消える!?
Cloud Runの最大の特長は、アクセスがない時はコンテナが完全に停止(スケールインしてゼロになる)ことです。これにより、無駄な料金を節約できます。
しかし、これは「常に記憶を保ち、いつでも待機している必要がある」データベースさんにとっては致命的です。
お客さんがいない間にホテルが消えてしまっては、記憶(データ)を保つことができません。
ルール③:部屋は毎回まっさらな新品
Cloud Runのコンテナは「ステートレス(状態を持たない)」です。
つまり、一度コンテナが停止し、次にアクセスがあって新しいコンテナが起動した時、それはまっさらな新品の状態になります。コンテナの中に何かを保存しても、次には消えてしまうのです。
結論:前提となる「家の形」が違う
ここまでをまとめると、ローカルDockerとCloud Runの違いは以下のようになります。
比較項目 | ローカルDocker(一軒家) | Cloud Run(カプセルホテル) |
---|---|---|
使い方 | 複数の専門家(コンテナ)を、常に動かし続ける | 一人の専門家(コンテナ)を、アクセスに応じて起動・停止 |
データの保管 | 家の中(PCストレージ)に保管できる | 部屋の中には保管できず、外部の倉庫(Cloud SQLなど)が必要 |
得意なこと | 複数のコンポーネントが連携する複雑なアプリの実行 | コストを最適化し、シンプルなアプリを素早く動かすこと |

なるほど!Difyは「一軒家」を前提に作られてるから、「カプセルホテル」には泊まれないんですね!

その通りです!まさにDifyは「一軒家」型の構成を前提としています。
だから、Cloud Runという「カプセルホテル」にDify一式をそのまま押し込もうとしても、ルールが合わずに動かせないのです。
この違いを理解すると、「Dify本体はVM(仮想マシン)で動かし、Cloud Runは窓口としてだけ使う」といった、一見複雑に見える構成がなぜ必要なのか、その理由が見えてくるはずです。