Codex環境セットアップ同期
Codex環境向けのセットアップスクリプトを整備し、Dockerfileの手順をシェルスクリプトで再現する。
Codex環境の特徴と制約
- •コンテナ内で動作するため Docker コマンドは使用しない
- •Dockerfileの
RUN/ENV相当の手順をシェルスクリプトへ移植する
セットアップ手順
- •
GitHub CLIのセットアップを案内する
- •
.codex/hooks/gh-setup.shを実行する - •例:
bash .codex/hooks/gh-setup.sh
- •
- •
Codex向け開発環境のセットアップを案内する
- •
.codex/hooks/env-setup.shを実行する - •例:
bash .codex/hooks/env-setup.sh
- •
- •
スキルディレクトリの同期を案内する
- •
.claude/hooks/skills-setup.shを実行する - •例:
bash .claude/hooks/skills-setup.sh
- •
Dockerfile手順の移植ガイド
1. Dockerfileから対象手順を抽出する
- •
RUNのインストール手順を列挙する - •
ENVの環境変数を列挙する - •例:
apt-get install,wget/curl,go install,npm install -g
2. env-setup.sh に移植する
- •既存の
env-setup.shに追記または関数化して追加する - •冪等性を維持するため、インストール済みチェックを入れる
- •例:
command -v shellcheck >/dev/null 2>&1 || apt-get install -y shellcheck
3. ログとバージョン確認を追加する
- •各ツールのインストール完了後に
--versionを表示する - •失敗時は明確なメッセージを出力する
4. Dockerfileとの差分管理
- •Dockerfile更新時は、同様の変更を
env-setup.shに反映する - •手順の差分がある場合、理由と影響をコメントで残す
冪等性・エラーハンドリングの指針
- •
set -euo pipefailを使用して早期失敗させる - •既存インストールの検出とスキップを行う
- •ネットワーク取得に失敗した場合の再実行性を考慮する
プロジェクト固有のカスタマイズ
- •
env-setup.shにプロジェクト固有のツールを追加する - •言語/フレームワーク固有の設定を環境変数で制御する
- •インストール対象は必ずコメントで理由を記載する
トラブルシューティング
- •コマンドが見つからない:
PATHを確認し、exportで追加する - •権限エラー:
sudoの必要性を確認(利用可能な場合のみ) - •依存関係の衝突: 先に不要なパッケージを削除してから再実行する
ベストプラクティス
- •スクリプトは短い関数に分割し、再利用性を高める
- •ログは「何をしているか」が分かる粒度で出力する
- •Dockerfile更新時は
env-setup.shを必ず見直す