18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

.devcontainer.jsonの設定をいつも忘れるのでメモ

Posted at

こんにちは。

VSCodeを使ったRemoteContainer開発、とても便利ですよね!

ただ、作るたびに.devcontainer.jsonをどう設定すれば快適なのか考えてしまうので、必ず設定している部分をメモしておきます。

前提

docker-composeは使わないものとします。

.devcontainer.jsonの中身

エクステンション部分は省略しますがだいたいこんな感じです。

.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のデフォルトエディターを設定しています。

 
 

以上です。

他にこんな設定しておくと良いぞ!などあれば教えてください。

18
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?