🐳

.awsをdevcontainerごとに分けたい

に公開

本題

/home/.awsというフォルダには、AWSのクレデンシャルや設定が書かれたファイルが保存されます。
devcontainer内でAWSサービスを扱う際には、このディレクトリを永続化しないと毎回aws configureを実行しないといけなくて面倒です。
永続化する方法にbindマウントを使う方法がありますが、案件によってdevcontainerが分かれている場合に、関係ない設定を保持してしまうのが微妙なところです。
volumeマウントを使うと設定を分けて永続化することが可能です。dockerでボリュームマウントしてマウントターゲットディレクトリを作成した場合、rootユーザー・グループで作成されてしまうのでその点だけ気を付けます。

devcontainer.json
{
  ...
  "mounts": [
    {
      # sourceは使用するdevcontainerによって任意のボリューム名に変更する
      "source": "foo-volume",
      "target": "/home/vscode/.aws",
      "type": "volume"
    }
  ],
  # ユーザーとグループを変える
  "postCreateCommand": "sudo chown -R vscode:vscode /home/vscode/.aws"
  ...
}

上記のdevcontainerではデフォルトユーザーにvscodeを使用しています。

以上です。

Discussion