🐳

Dev Container上で、sam buildによるImageのビルドが「Error: Credentials store~」で失敗する

に公開

Visual Studio CodeのDev Container上で、AWS SAMのsam buildでImageをビルドしようとしたときに、下記のようなエラーになる場合があります。

vscode@fa74e5972146:/workspaces/fastapi-dynamodb-sample$ sam build
Building codeuri: /workspaces/fastapi-dynamodb-sample runtime: None architecture: x86_64 functions: FastApiFunction                    
Building image for FastApiFunction function                                                                                            
Setting DockerBuildArgs for FastApiFunction function                                                    

Error: Credentials store docker-credential-dev-containers-2052b920-bece-45c1-be63-2d6c467811b2 exited with "".
Traceback:
  File "click/core.py", line 1082, in main
  File "click/core.py", line 1697, in invoke
...

Dev Containerが起動する際に、~/.docker/config.jsonに自動でcredsStoreフィールドを追加するようになっており、この情報が参照されてしまうことで失敗するようです。

~/.docker/config.json を削除することで回避できますが、毎回削除するのは面倒です。
Visual Studio Codeの設定で作成を抑止できるようになっているので、devcontainer.jsonで下記のように設定します。

  "customizations": {
    "vscode": {
      "settings": {
        "dev.containers.dockerCredentialHelper": false
      }
    }
  },

この問題は下記のIssueで報告されていて、az acr loginでも同様の問題が発生するようです。(DevContainer上でDockerを使う様々なシチュエーションで競合しやすい)

Discussion