症状
baseイメージをno-cacheで再ビルドしてコンテナを再作成すると、bash起動時に次のエラーが出ます。
-bash: /etc/devbase/ai-cli-aliases.sh: Permission denied
再現結果
ai-plugins:latestを新しいコンテナで起動すると、親ディレクトリが次のpermissionになっていました。
drw-r--r-- 644 root:root /etc/devbase
ubuntuユーザーはディレクトリを探索できず、配下のai-cli-aliases.shをsourceできません。
根本原因
containers/base/Dockerfileが、事前に/etc/devbaseを作らずに次のCOPYを実行しています。
COPY --chmod=0644 ai-cli-aliases.sh /etc/devbase/ai-cli-aliases.sh
BuildKitが暗黙作成した親ディレクトリにも0644が適用され、必要な実行権限がありません。
修正方針
- COPY前に
/etc/devbaseを0755で明示作成する
- Dockerfileの配線テストへディレクトリpermission要件を追加する
- no-cacheビルドした実イメージでubuntuユーザーがファイルをsourceできることを確認する
暫定復旧
稼働中ai-plugins-dev-1では次を実行し、source成功を確認済みです。
docker exec -u root ai-plugins-dev-1 chmod 0755 /etc/devbase
由来
PR #154 のv3.2.1リリース後テストで発見しました。
症状
baseイメージをno-cacheで再ビルドしてコンテナを再作成すると、bash起動時に次のエラーが出ます。
再現結果
ai-plugins:latestを新しいコンテナで起動すると、親ディレクトリが次のpermissionになっていました。ubuntuユーザーはディレクトリを探索できず、配下の
ai-cli-aliases.shをsourceできません。根本原因
containers/base/Dockerfileが、事前に/etc/devbaseを作らずに次のCOPYを実行しています。COPY --chmod=0644 ai-cli-aliases.sh /etc/devbase/ai-cli-aliases.shBuildKitが暗黙作成した親ディレクトリにも
0644が適用され、必要な実行権限がありません。修正方針
/etc/devbaseを0755で明示作成する暫定復旧
稼働中
ai-plugins-dev-1では次を実行し、source成功を確認済みです。docker exec -u root ai-plugins-dev-1 chmod 0755 /etc/devbase由来
PR #154 のv3.2.1リリース後テストで発見しました。