AWSSDKのAPIを使ってAWSのサービスを使う際、ユーザーのホームディレクトリにある.aws/credentialsを使って認証されますが、ローカルのDockerで実行時にはこれが無いためAPIの呼び出しに失敗します。 docker-compose.ymlで認証情報を共有できるようにします。
実行環境
- Visual Studio 2022 Version 17.2.0
- .NET 6
- ASP.NET Core Razer Pages
- Docker Engine v20.10.14
docker-compose.ymlの作成
Visual Studioのソリューションエクスプローラーでプロジェクトを右クリックして追加→コンテナーオーケストレーターのサポートを選択します。

作成されたdocker-compose.ymlにvolumesを追加します。
version: '3.4'
services:
containerdebugsample:
image: ${DOCKER_REGISTRY-}containerdebugsample
build:
context: .
dockerfile: ContainerDebugSample/Dockerfile
volumes:
- ~/.aws/:/root/.aws:roDocker Composeという起動プロファイルが自動的に追加されているので、このプロファイルでデバッグ実行します。

これでホストマシン上の~/.awsがコンテナ上の/roor/.awsにコピーされ、Dockerコンテナ上でアプリをデバッグ実行してもちゃんと認証が通りAWSのサービスが使えるようになります。