Cloud RunはGitHub連携もできるため、Next.jsのアプリケーションもDockerfileを準備すれば簡単にデプロイを自動化できる。しかし、連携設定どおりにちゃちゃっと設定していっても、NEXT_PUBLIC_で始まるクライアント用の環境変数がうまく設定できない。Cloud Runの設定を行う際に環境変数を指定することができるのだが、それを設定していてもNEXT_PUBLIC_がついている環境変数だけが動かない。しかもAPIなどで使っている環境変数は問題なく動いている。
そもそもNEXT_PUBLIC_系の環境変数というのは、実行したタイミングで利用されるものではない。サーバー側で直接利用される場合はそのまま動くが、クライアント側はビルドした時に埋め込まれる仕様となっている。そのためCloud Runで実行した場合ではなく、Cloud Buildでビルドされるタイミングで環境変数が利用されるようにしておかなければならない。つまり、Cloud Build側に環境変数の設定が必要ということ。
コメント