VS Codeのdevcontainerで指定可能なDebianイメージについて調べてみたことをご紹介します。
この記事を読んで欲しい方
- devcontainerで指定可能なDebianのビルド元となっているDockerfileを知りたい方
- devcontainerで指定可能なDebianに標準でどのような機能が追加されているかを知りたい方
- devcontainerで指定可能なDebianイメージの実装を知りたい方
前提条件
本記事はHugo環境構築(devcontainer)に掲載した方法で、devcontainer環境を構築したことを前提としています。
参考情報
- Develop Containers(devcontainer公式)
- Base Development Container Images(devcontainerのベースイメージ情報)
- 仕様
調べたこと
以降の情報は、2024年8月時点のものです。
devcontainer設定時に指定するDebianイメージの参照先
devcontainerを設定した際に作成されるdevcontainer.json
から、参照先のイメージ情報を確認します。
|
|
mcr.microsoft.com/devcontainers/base:bookworm
を参照していることを確認できました。
また、同様の情報をGitHub上のdevcontainerリポジトリからも読み取ることができます。
templates/src/debian/README.md at main · devcontainers/templates
This template references an image that was pre-built to automatically include needed devcontainer.json metadata.
Image: mcr.microsoft.com/devcontainers/base:debian (source)
Applies devcontainer.json contents from image: Yes (source)
Debianイメージの実装
前項のdevcontainerリポジトリ内にある以下のファイルがDebianイメージの実装となっています。
devcontainerが参照するDebianイメージの実装がどうなっているのか、確認します。
Debianベースイメージ
devcontainer.json内に、以下の記載がありました。
|
|
同ディレクトリ内にDockerfileがあります。
Dockerfileの内容を確認します。
|
|
DockerfileはARG
,FROM
のシンプルな処理で実装されていますね。
FROM
で指定されているイメージは、dockerhubで公開されているDocker Official Imageでした。
buildpack-deps
のbookworm-curl
をビルドする際のDockerfileは以下のリポジトリで公開されています。
コードまでは記載しませんが、FROM debian:bookworm
を確認できました。
Docker公式のDebianイメージまで辿りつきましたので、ここまでがベースイメージの全容のようです。
ベースイメージにたどり着くまでの一連の処理が公開されていて、怪しい処理も見受けられませんでした。
疑っているわけではありませんが、透明性が保たれていて安心感がありました。
Debianベースイメージへの機能追加
ベースイメージの実装は前項で確認できました。
devcontainer独自の実装として機能追加している処理を確認します。
具体的にはdevcontainer.json内の、features
を確認します。
|
|
大きく2点の機能が追加されていることを確認できました。
各機能の実装はAvailable Dev Container Featuresから確認します。
- features/src/common-utils at main · devcontainers/features
- features/src/git at main · devcontainers/features
詳細は各リンクから確認できますが、Debianに合わせた方法でgit
,jq
,tree
,openssh-client
などの汎用ツールをインストールしていることを確認できました。
イメージ最小化等のこだわりがなければ便利に利用させていただくと良いのかなという印象です。
まとめ
本記事ではVS Codeのdevcontainerで指定可能なDebianイメージについて調べたことをご紹介しました。
これだけ便利な機能が実装含めて公開されているのは、とてもありがたいです。