15
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【VSCode】devcontainerでCodex認証が通らない? ポート1455を巡る「椅子取りゲーム」の制し方

15
Last updated at Posted at 2026-01-07

エンジニアの皆さん、こんにちは!Dirbato - Backbeat の田島です!

突然ですが、皆さんのローカル開発環境、「秘伝のタレ」 みたいにドロドロに汚れてませんか?
「あのプロジェクトの時は Node v14 だったけど、こっちは v20 で、なんか Python のパスが通らなくなって……」なんていう環境構築の地獄(カオス) から逃れるため、私は devcontainer をこよなく愛しています。

まさに、環境を汚さないその姿は、まるで「汚れなき聖域(サンクチュアリ)」。

しかし!その聖域で Codex(OpenAI)拡張機能 を使おうとした際、「2つ目のプロジェクトから認証できない」という奇妙な呪いにかかってしまったので、その解呪方法を共有します!


1. 発生した問題:二人目の勇者は門前払い

AIコーディング全盛期の今、VSCode で Codex 拡張機能(openai.chatgpt)を使っている方は多いでしょう。
認証方法は「OpenAI API Key」か「Sign in with ChatGPT」の2択ですが、キーの管理なんて面倒なことはしたくない。そう、「Sign in with ChatGPT」で楽をしたいのがエンジニアの性です。
image.png

ところが、ここで 「devcontainer の多重起動」 という壁が立ちはだかります。

1つ目のプロジェクト(コンテナ)では、すんなりログインできます。
しかし、2つ目のプロジェクト(別のコンテナ)を立ち上げて認証しようとすると、無限リダイレクトのループに陥り、認証が完了しないのです。

【現象】
ブラウザでログインボタンを押しても、VSCode側に「認証完了!」の通知が届かない。


2. 原因:ポート番号の「椅子取りゲーム」

なぜ認証が失敗するのか? それは Port Forwarding(ポートフォワーディング) の仕様によるものです。
認証の流れを可視化してみましょう。

1つ目のコンテナは、デフォルトの 1455 ポートを確保します。
問題は、2つ目のコンテナを立ち上げた時です。

  1. VSCode は「おっ、1455 はもう使われてるな。じゃあ 2つ目のコンテナは 1456 を割り当てよう」と気を利かせます。
    image.png

  2. しかし、OpenAI 側のリダイレクト設定(あるいは拡張機能の仕様)は 1455 に戻る気満々 です。
    image.png

  3. ブラウザは localhost:1455(1つ目のコンテナ)に情報を送ろうとしますが、今認証したいのは 1456(2つ目のコンテナ)なのです。

結果、「宛先不明で認証情報が迷子になる」 という悲劇が起こります。まさに運命の赤い糸が別のサーバーに繋がってしまった状態。


3. 解決策:旧勢力のポートを「物理」で排除する

解決方法は至ってシンプルです。
「OpenAI が 1455 に帰りたいなら、1455 を空けて待っててあげればいいじゃない」 という、逆転の発想(パワープレイ)です。

手順:ポートの強制解放

  1. 2つ目の devcontainer を開いた状態で、VSCode の 「PORTS(ポート)」タブ を開きます。
  2. おそらく、以前のセッションの残骸か何かで 1455 ポートがフォワーディングされているはずです。
  3. その 1455 ポートを選択して 右クリック > Stop Forwading Port(設定を削除) してください。
    image.png
  4. 次に、コマンドパレット(Ctrl+Shift+P)から Forward a Port を選択。
  5. 手動で 1455 ポートを現在のコンテナに割り当て直します。

【ここがポイント!】
現在のコンテナが使うポートを、強引に 1455 に固定してあげることで、OpenAI からのリダイレクトを正しく受け取れるようになります。

解決のフロー

  1. 1つ目のコンテナで使っていた 1455 ポートのフォワーディングを解除。
  2. 2つ目のコンテナで改めて 1455 をフォワード設定。
  3. 「Sign in with ChatGPT」をポチる。
  4. 勝利!

まとめ

devcontainer は環境をクリーンに保ってくれる最高のアシスタントですが、たまにこうやって 「ホスト OS との境界線」 でポートの衝突を起こすワガママな一面を見せます。

  • 1つ目のコンテナが 1455 を専有しているのが諸悪の根源。
  • 動かない時は「ポートフォワーディング」を確認し、1455 を現在のコンテナに無理やり紐付ける。

これで、複数のプロジェクトを並行して進めていても、AIの力をフルに発揮できますね!

「地味にハマるけど、分かれば一瞬」な小ネタでした。
皆さんも、快適な AI コーディングライフを!

注意
複数のコンテナで同時に Codex を「アクティブ」に認証し続けたい場合は、このポート競合がまた発生する可能性があります。その時は、使い終わった方のポートをこまめに閉じる「ポートの断捨離」を心がけましょう。


執筆:田島(Dirbato - Backbeat)
エンジニアの静かなる環境と、AIの爆速な進化を愛しています。

15
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?