こんにちは。
VSCodeを使ったRemoteContainer開発、とても便利ですよね!
ただ、作るたびに.devcontainer.json
をどう設定すれば快適なのか考えてしまうので、必ず設定している部分をメモしておきます。
前提
docker-composeは使わないものとします。
.devcontainer.jsonの中身
エクステンション部分は省略しますがだいたいこんな感じです。
"name": "My DevContainer",
"build" : {
"dockerfile": "Dockerfile",
},
"workspaceFolder": "/workspace",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=cached",
"mounts": [
"source=${localEnv:USERPROFILE}/.aws,target=/root/.aws,type=bind,consistency=cached",
"target=/workspace/node_modules",
],
"onCreateCommand": "git config --local core.editor code",
workspaceFolder
今ローカルで開いているワークスペースをコンテナ内のどのパスに配置するかを指定します。
デフォルトだと/workspaces/<VSCodeのワークスペース名>
になりますが、私はプロジェクトに限らず開発用コンテナのルートは同じにしたいので固定しています。
基本的にworkspaceMountと合わせて使います。
workspaceMount
Docker CLIの--mount
オプションの書式でワークスペースのマウント方法を指定します。
target
の指定はworkspaceMountと同じパスを指定します。
mounts
ローカルの各ディレクトリのマウント方法を指定します。
私がいつも設定しているものは
- AWSの認証情報などワークスペース外のファイル
- node_modulesなどマウントする必要のないファイル、ディレクトリを名前付きボリュームで指定
です。
特に2つ目はローカルマウントした状態でコンテナ内でビルドすると致命的に遅くなるので大切です。
onCreateCommand
開発用コンテナが出来上がった際に実行されるコマンドです。
Dockerfileに書いても良いのですが、Dockerfileにはあまり手を加えたくないのでこっちに書いています。
私はgitのデフォルトエディターを設定しています。
以上です。
他にこんな設定しておくと良いぞ!などあれば教えてください。