Open3

VSCode Remote Container メモ

かとりょーかとりょー

dotenvファイルから環境変数を読み込む

.devcontainer/devcontainer.json
{
	"runArgs": [
		"--env-file",
		".env"
	]
}
かとりょーかとりょー

AWS CLI/SDKの使用やSSH(およびGit)アクセスの為のローカルディレクトリのマウント

.devcontainer/devcontainer.json
{
	"mounts": [
		"source=${localEnv:HOME}${localEnv:USERPROFILE}/.aws,target=/home/node/.aws,type=bind,consistency=cached",
		"source=${localEnv:HOME}${localEnv:USERPROFILE}/.ssh,target=/home/node/.ssh,type=bind,consistency=cached"
	],
}

Docker Composeを使っている場合はdevcontainer.jsonでは指定できないのでdocker-compose.ymlで指定する。

.devcontainer/docker-compose.yaml
    volumes:
      - ..:/workspace:cached
      - ~/.aws:/home/node/.aws:cached
      - ~/.ssh:/home/node/.ssh:cached
かとりょーかとりょー

Remote Container内でDockerを起動したい場合はDocker in Dockerを使う。
https://github.com/microsoft/vscode-dev-containers/blob/main/script-library/docs/docker-in-docker.md

Docker from Docker(Docker outside of Docker)というDocker上からローカルマシンのDockerデーモンにアクセスし子ではなく兄弟としてDockerを立ち上げることもできる。
Docker上からボリュームのマウントを行う場合はローカルマシン上でのファイルパスを指定する必要があるので注意する。
環境変数を使えばDocker上/ローカルマシンどちらで実行している場合も利用ができる。dev containerを使っている/いないメンバーが混在している場合はこの対応が必要になる。

    volumes:
      - ${WORK_DIR}/path:/path