Skip to content

feat: コンテナを作り直しても残るシェルの設定の読み込み先(~/.shellrc.d/*.sh)を用意する #253

Description

@takemi-ohama

何をしたいか

コンテナを作り直しても残るシェルの設定の置き場所(読み込み用のディレクトリ)を 1 つ用意し、~/.bashrc と ~/.zshrc がその中の *.sh を読み込むようにしてほしい。

今は ~/.bashrc と ~/.zshrc がイメージの層にあり、コンテナを作り直すと Dockerfile が書いた中身へ戻る。利用者やツールが足した alias は作り直しで消える。

例: ai-plugins の中継(devbasex/ai-plugins#928)

ai-plugins の ndf プラグインは、claude を中継(relay.py)で包む alias を、利用者の明示の操作(/ndf:install-wrapper)で入れる。中継の本体は ~/.claude/ndf/relay.py に置く(~/.claude は /persistent/group/.claude への symlink で、作り直しでも残る)。alias の行は ~/.claude/ndf/shellrc に書く。

足りないのは、この shellrc を読み込む 1 行を、作り直しで消えない形で置く場所である。~/.bashrc に書くと作り直しで消える。

提案

項目 提案
置き場所 分類 B(アカウントグループ単位)の新しい項目として ~/.shellrc.d/ を /persistent/group/.shellrc.d/ へ張る(entrypoint.sh の DEVBASE_GROUP_SETTINGS に足す)。ndf の中継の本体が ~/.claude(分類 B)にあるので、同じグループの単位にそろえる
読み込み Dockerfile が ~/.bashrc と ~/.zshrc の末尾へ、. /etc/devbase/ai-cli-aliases.sh の後に次を足す: for f in "$HOME"/.shellrc.d/*.sh; do [ -r "$f" ] && . "$f"; done; unset f(zsh では一致が無いときの誤りを避けるため setopt local_options null_glob 相当の扱いが要る)
見つけ方 読み込むディレクトリのパスを、コンテナの環境変数 DEVBASE_SHELLRC_DIR で示す(対話シェルでない処理、たとえば Claude Code の中の Bash からも見えるように、rc ではなくコンテナの環境に置く)。ツールはこの変数があればそこへ 1 ファイルを置き、~/.bashrc を書き換えない

汎用にする理由: 読み込むのは ndf 固有のファイルではなく、ディレクトリの中の *.sh 全部にする。devbase は 4 つの AI CLI と利用者自身の設定を載せるため、ndf のパス(~/.claude/ndf/shellrc)を devbase に書くと、ndf の置き場所が変わるたびに devbase を直すことになる。ndf 側はこのディレクトリへ ndf-relay.sh(shellrc を読む 1 行)を置く。

名前(~/.shellrc.d・DEVBASE_SHELLRC_DIR)は案で、devbase の命名に合わせて決めてよい。決まった名前を ai-plugins#928 の実装が使う。

気をつけること

由来

devbasex/ai-plugins#928(設計 PR devbasex/ai-plugins#932 の関門 1 で、利用者が「中継の alias を永続化される rc ファイルへ書き、devbase がそれを読み込む」と決めた。2026-09-23)

進行

モード: standard / 作業ツリー: .worktrees/feature/plan70-shellrc-dir / 計画: issues/PLAN70_shellrc-dir.md

  • 要求と受け入れ条件 — 2026-09-24 10:29
  • 作業場所の用意 — 2026-09-24 10:31
  • 設計 — 2026-09-24 10:33
  • 素材の収集と出典の確定
  • ドキュメント再構成 — 2026-09-24 10:35
  • ドキュメントレビュー — 2026-09-24 10:35
  • 計画 — 2026-09-24 11:53
  • 実装 — 2026-09-24 11:53
  • 構造改善 — 2026-09-24 12:22
  • 実装レビュー — 2026-09-24 13:02
  • 完了判定 — 2026-09-24 13:38
  • Pull Request — 2026-09-24 13:42
  • 確定仕様化 — 2026-09-24 18:52
  • 後片付け — 2026-09-24 11:52
  • 配布 — 2026-09-24 19:18
  • 体裁レビュー
  • リリース後テスト — 2026-09-24 19:26
  • 振り返り — 2026-09-24 19:29

振り返り: #262 (comment)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions