DevContainerでDockerの引数オプションを使いたい
忙しい人のための要約
- DockerのオプションをDevContainer上で設定するには
runArgs
で渡せばいい - こういうことDevContainerで見るにはどうすればいいかなという時にはdevcontainerのプロパティのRefを読むと良い
きっかけ
DockerのDocumentではメモリ量の設定の項目があったがこれに対応するDevContainerの設定がわからなくて困った。Dockerコマンドを間接的に呼んでいるのでDockerではなくDevContainer側で設定を渡してあげる必要がある。
そうだ一次情報を読もう
ということでDevContainerの公式ドキュメントです。こういうことではまって以降ライブラリーを使う時には一次情報である公式Docの場所を探すようになりました。こういうものは習慣化してリファレンスに残しておくとちょっとした疑問が出た時に便利です。
公式リファレンスのOverViewを見ると、コンテナの用途の広がりにより開発用途のライブラリー等を入れたコンテナの必要性が生まれてきたことなど「この技術の嬉しさ」が書かれており 酒のつまみに使える読み物としても公式Documentは面白いものとなっています。
DevContainerのreferenceページにはdevcontainer.json
に書くことができるプロパティが一覧で載っています。代表的なのは以下にあります。
-
forwardPorts:ポートフォワードに関わるコンテナ設定です。Docer Composeと併用する時には使い所が多そう。1台構成の場合はDevContainer側がよしなにホストとポートをくっつけてくれますDockerの
-p
オプションに近い働きをしている。 -
mounts: コンテナに.devcontainerが置かれているディレクトリーに加えて別なディレクトリーもマウントしたい場合に使う。Dockerの
--mount
に対応。 - runArgs: DockerCLIを呼び出す時の追加引数を設定することができる。
今回の場合引数の--memory=8g
というオプションを付け加えたいのでDevContainerに以下のような値を書き加える。
(前略)
"image": "mcr.microsoft.com/devcontainers/typescript-node:18-bullseye",
"runArgs": [
"--memory=6g"
],
(中略)
}
最後に
日本語化されていないものでもオプションなどなら読めることも多くあるので英語だからと敬遠せずに食らいついていきましょう…!
それはそれとしてDevContainerのDocument日本語化されて欲しい。