はじめに
VSCodeのDevContainersでGitを使用した際にfatal: detected dubious ownership in repositoryが出力され処理が終了しない場合の対処法について記載します。
対処法
devcontainer.jsonのpostCreateCommandで次を実行するように設定します。
devcontainer.json
{
"postCreateCommand": "sudo git config --system --add safe.directory ${containerWorkspaceFolder}"
}
--globalで実行すると~/.gitconfigが作成されホストの.gitconfigが反映されなくなるため--systemを使用しています。
コマンドを別のファイルに記述する場合には以下のように記述します。
ワーキングディレクトリをsafe.directoryに設定する場合には
sample.sh
sudo git config --system --add safe.directory "${PWD}"
レポジトリルートをsafe.directoryに設定する場合には
sample.sh
sudo git config --system --add safe.directory "$(git rev-parse --show-toplevel)"
上記以外の方法
レポジトリルートでsudo -R ${USER} ./を実行しても解消されました。