VSCode Remote Container 構築メモ

Aug 5, 2022 22:18 · 108 words · 1 minute read

VSCode Remote Development の仕組みを使うことで、ローカルマシンのグローバルを汚すことなく開発を行うことができます。

Remote Development の接続先としては、SSHで接続可能なリモートマシンや、WSLなどがあります。 その中の一つである Docker Container を使った remote development を導入したので備忘録的にまとめておきます。

基本的な手順は 本家のドキュメント が充実しているので、細かいところで「こうしたいけどどうすりゃいいのか」というところに絞って書いていきます。

環境 🔗

[ローカルマシン]

  • Mac mini(M1, 2020)
  • macOS Monterey 12.4
  • Docker 20.10.6

[Docker Container]

  • Ubuntu 20.04.4 LTS

Dockerfile のベースの部分を抜粋 。

FROM ubuntu:latest
ARG UNAME="vscode"
ARG UID=1000
RUN useradd ${UNAME} -m -u ${UID} -g root
USER ${UID}

Integrated Terminal で zsh を使いたい 🔗

Dockerfile 内で zsh がインストールされている前提。 やり方はいくつか考えられますが、devcontainer.jsonを使うのが良さそうでした。

{
  "settings": {
		"terminal.integrated.defaultProfile.linux": "zsh",
		"terminal.integrated.profiles.linux": {
			"bash": {
				"path": "bash",
				"icon": "terminal-bash"
			},
			"zsh": {
				"path": "zsh"
			}
	  }
	}
}

ローカルマシンの .SSH をマウントしたい 🔗

これも devcontainer.json を使って設定できます。

{
  "mounts": [
		"source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind"
	]
}

type=bindをつけないと volume と見做されるっぽいので注意。
cf: https://matsuand.github.io/docs.docker.jp.onthefly/storage/bind-mounts/

Rebuild Container で、docker start に失敗する 🔗

コンテナを消してあげればOK。

docker container rm <CONTAINER ID>

資料 🔗