以下の内容はhttps://thinkami.hatenablog.com/entry/2025/12/21/230620より取得しました。


JetBrains WebStormでDevContainerを起動し、DevContainerの中でCodex CLIを実行してみた

先日、技術書典19で発売された「DevContainer実践ガイド」を読みました。DevContainerまわりの知見がまとまっていて、とてもためになりました。ありがとうございました。

techbookfest.org

 

この書籍の中ではJetBrains IDE環境におけるDevContainerの記載があり、以前さわったときとは雰囲気が異なってそうに感じました。

そこで、DevContainer環境を構築し、DevContainer上のJetBrains IDEのターミナルで Codex CLI を動かしてみたことから、メモを残します。

 
目次

 

環境

  • macOS
  • WebStorm 2025.3.1
  • Docker Desktop 4.55.0
  • Codex CLI 0.77.0

 

今回構築するDevContainer環境について

DevContainerの中にCodex CLIをインストールして、 DevContainerの中で codex コマンドが使える環境を構築します。

また、書籍「DevContainer実践ガイド」に従い、非rootユーザーを利用することとします。そのため、非rootユーザーが組み込まれているDevContainer公式の Node.js & TypeScript イメージを利用します。
images/src/typescript-node at main · devcontainers/images

 

DevContainer用ファイルの準備

.devcontainer/devcontainer.json ファイルの作成

DevContainer実践ガイドに従い、今回は以下の状態となるような devcontainer.json ファイルを用意します。

{
    "name": "devcontainer-jetbrains-ide-example",
    "image": "mcr.microsoft.com/devcontainers/typescript-node:24-trixie",
    "mounts": [
        "source=${localEnv:HOME}/.agent/codex/.codex,target=/home/node/.codex,type=bind,consistency=cached"
    ],
    "postStartCommand": ".devcontainer/postStartCommand.sh",
    "customizations": {
        "jetbrains": {
            "plugins": [
                "com.github.biomejs.intellijbiome"
            ]
        }
    }
}

 

postStartCommand.sh ファイルの作成

devcontainer.json から呼ばれてCodex CLIの最新版をインストールする postStartCommand.sh ファイルを作成します。

npm install -g @openai/codex@latest

 
なお、このファイルに実行権限がない場合、以下のエラーになります。

sh: 1: .devcontainer/postStartCommand.sh: Permission denied
Lifecycle script command: `.devcontainer/postStartCommand.sh` is failed with exit code: 126

 
そのため、ホストで postStartCommand.sh ファイルに実行権限を追加します。

% chmod +x .devcontainer/postStartCommand.sh

 
権限が付与されていることを確認します。

% ls -al .devcontainer 
total 16
drwxr-xr-x@ 4 foo  staff  128 Dec 21 21:18 .
drwxr-xr-x@ 4 foo  staff  128 Dec 21 16:42 ..
-rw-r--r--@ 1 foo  staff  473 Dec 21 21:18 devcontainer.json
-rwxr-xr-x@ 1 foo  staff   35 Dec 21 16:42 postStartCommand.sh

 

Codex CLI向け永続化ディレクトリの作成

devcontainer.json で永続化ディレクトリを指定したため、事前に作成しておきます。

% mkdir -p ~/.agent/codex/.codex

 

IDEでDevContainerの起動

JetBrainsの公式ドキュメントでは、DevContainerを起動する方法がいくつも紹介されていました。
Dev Container overview | WebStorm Documentation

 
DevContainer実践ガイドでは主にSSHを使った起動について記載されていました。

今回は別の方法で起動してみようと考え、WebStormの中からDevContainerを起動することにします。
https://www.jetbrains.com/help/webstorm/start-dev-container-inside-ide.html

 
WebStormから起動する場合は、さらに mountclone という2つの方法があります。

今回はGitHubとは連携せずに起動したいことから、 Create Dev Container and mount sources タブの方法を採用します。

 
ホストの devcontainer.jsonファイルを開き、コンテナアイコンを確認します。ホバーするとこんな感じになります。

 
続いて、コンテナアイコンをクリックします。今回はDevContainerをWebStormで開くことから、Create Dev Container and Mount Sources... > WebStorm をクリックします。

 
すると、コンテナイメージのビルドが走るため、しばらく待ちます。

その後、別のWebStormがDevContainerに対して開きます。なお、元のWebStormのアイコンはグレー化します。

 
WebStormを確認すると、devcontainer.json で設定した通り、Biomeプラグインがインストールされていました。

 
続いて codex コマンドでCodex CLIを起動します。初回は認証が求められます。

 
1. Sign in with ChatGPT を選択するとブラウザが開くので、ChatGPTのアカウントでログインします。

すると、Codex CLIの画面が開きます。

 
Codex CLIリポジトリを開いたときに行うのと同様 /init を実行したところ、 AGENTS.md ファイルを生成されました。また、以下のメッセージが表示されいます。

• AGENTS.md を作成して、現状のリポジトリ内容に合わせたガイドをまとめました。開発コンテナ中心でソースやテストが未配置である点、postStart コマンドや IDE 設定の所在を明記しています。

  - 追加: AGENTS.md

  次のステップの候補:

  1. 実際のアプリ構成が決まったら AGENTS.md の構成・コマンド・テスト規約を更新する
  2. Biome の設定ファイル(biome.json など)を追加してスタイル規約を確定する

 
また、Codex CLIの情報は、ホストの ~/.agent/codex/.codex の中に保存されました。

 
以上で、WebStormから devcontainer.json で設定した通りのDevContainerを起動し、別のWebStormでDevContainerを開くことができました。

 

ソースコード

GitHubに上げました。
https://github.com/thinkAmi-sandbox/devcontainer_jetbrains_ide-example




以上の内容はhttps://thinkami.hatenablog.com/entry/2025/12/21/230620より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14