fix(container): gemini の Vertex AI 強制をやめ、起動定義をファイルへ出す - #149
Merged
Merged
Conversation
containers/base/Dockerfile が .bashrc へ書く alias が、全コンテナで GOOGLE_GENAI_USE_VERTEXAI=true を無条件に強制していた。Vertex を使わない プロジェクト (GOOGLE_CLOUD_PROJECT を空にした with-ai-dev / project-trygroup-prd) でも Vertex 経路へ倒れ、gemini が使えなくなる。 - 起動定義を containers/base/ai-cli-aliases.sh へ出し、Dockerfile は COPY と .bashrc からの読み込み 1 行だけにした。インラインの echo はテストできない - gemini から GOOGLE_GENAI_USE_VERTEXAI の前置を落とした。認証方式は環境の 同変数で選ぶ。GOOGLE_CLOUD_PROJECT は gcloud や BigQuery でも使う変数であり 認証方式の opt-in ではないため、推論には使わない - 全 6 定義から "$@" を落とした。alias の "$@" は alias の引数ではなく シェルの位置パラメータへ展開され、引数を渡す働きをしていない - claudb に command を挟んだ。挟まないと claude の alias まで展開され --dangerously-skip-permissions が 2 度渡る (実コンテナで再現を確認) - Docker を起動せず振る舞いを固定するテストを 37 件追加した 移行 (実施済み): 共通へ GOOGLE_GENAI_USE_VERTEXAI=true を設定し、Vertex を 使わない 2 プロジェクトの env で空に打ち消した。projects/*/env は devbase-ext リポジトリの実体のため、この PR には含まれない。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01V9tinzTAbF1LVEYvfUgzKx
takemi-ohama
commented
Sep 3, 2026
takemi-ohama
left a comment
Contributor
Author
There was a problem hiding this comment.
🤖 cross-review | round 1 | codex | APPROVE
修正必須の指摘はありません。
takemi-ohama
commented
Sep 3, 2026
takemi-ohama
left a comment
Contributor
Author
There was a problem hiding this comment.
🤖 cross-review | round 1 | gemini | APPROVE
PRの目的に沿った適切な修正です。claudb への command 追加による二重展開の防止、非対話シェルへの影響がないこと、テストの簡潔な実装についても妥当であることを確認しました。
takemi-ohama
commented
Sep 3, 2026
takemi-ohama
left a comment
Contributor
Author
There was a problem hiding this comment.
🤖 cross-review | round 1 | gemini | APPROVE
PRの差分および仕様を確認しました。修正提案はありません。
This was referenced Sep 3, 2026
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
containers/base/Dockerfileが.bashrcへ書き込む alias が、全コンテナでGOOGLE_GENAI_USE_VERTEXAI=trueを無条件に強制していました。Vertex AI を使わないプロジェクトでも Vertex 経路へ倒れ、gemini が使えなくなります。設計は #148 でレビュー済みです。詳細は
issues/PLAN50_gemini-vertex-alias.mdを参照してください。関連 Issue
なし(利用者からの直接の報告)。設計 PR: #148
変更点
1. 起動定義を
containers/base/ai-cli-aliases.shへ出したDockerfile 側は
COPYと.bashrcからの読み込み 1 行だけになりました。インラインのecho ... >> ~/.bashrcはテストできず、Dockerfile の文字列をgrepするテストは振る舞いを固定しません。tmux.confと同じCOPYする資産にしています。2.
geminiからGOOGLE_GENAI_USE_VERTEXAIの前置を落とした認証方式は環境の同変数で選びます。
GOOGLE_CLOUD_PROJECTの有無で推論しません。 これは gcloud や BigQuery でも使うプロジェクト指定であって認証方式の opt-in ではなく、OAuth を選んだ利用者が別の目的で設定した瞬間 Vertex へ倒れるためです(#148 のレビュー指摘)。GOOGLE_GENAI_USE_VERTEXAI=true~/.gemini/settings.jsonのselectedType(OAuth など)3. 全 6 定義から
"$@"を落としたalias の
"$@"は alias の引数ではなくシェルの位置パラメータへ展開されるため、引数を渡す働きをしていません。引数は alias の展開で末尾へ付きます。4.
claudbにcommandを挟んだ(範囲を広げた判断)挟まないと
claudeの alias まで展開され、--dangerously-skip-permissionsが 2 度渡ります。実コンテナで再現を確認しました。書き換えている行そのものが原因で、放置するとテストが重複を「正」として固定するため範囲に入れました。理由は計画ファイルの「範囲を広げた判断」に記録しています。
5. テスト 37 件(
tests/containers/test_ai_cli_aliases.py)shopt -s expand_aliasesして定義を source し、PATH の先頭に置いたスタブが受け取る引数と環境を突き合わせます。Docker には依存しません(既存のtest_entrypoint_*.pyと同じ方式)。移行(実施済み)
この変更だけでは、いま Vertex を使っている環境が OAuth 側へ倒れます。 起動定義が補っていた値を環境へ移しました。
devbase env set GOOGLE_GENAI_USE_VERTEXAI=true'true'with-ai-dev/project-trygroup-prdenvへGOOGLE_GENAI_USE_VERTEXAI=を追記して打ち消しwith-ai-devの解決結果が[]projects/*/envの実体はdevbase-extリポジトリにあるため、この PR には含まれません。 別途そちらへ反映が要ります。動作確認
uv run pytest tests/containers/test_ai_cli_aliases.py -quv run pytest tests/ -qshellcheck --severity=error --shell=bash containers/base/ai-cli-aliases.shshellcheck --severity=error bin/devbase/ruff check --select=E9,F63,F7,F82 libpython -m compileall -q lib bindocs/user/container-operations.md) を更新した./bin/devbase --helpが正常に動作する未検証: 実コンテナでの動作。この修正はベースイメージの再ビルドとコンテナ再作成で初めて効きます。 リリース後テストで確かめます。
補足
レビューでは特に次を見ていただきたいです。
claudbへのcommandの追加(範囲を広げた判断)。この PR に含めてよいか_statements()の扱い。「書かない」ことを確かめる assertion がコメントに反応しないようにしている.bashrcから/etc/devbase/ai-cli-aliases.shを読む形。非対話シェルへの影響が無いか