🐳
.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