DevContainer を標準外の Docker イメージでセットアップする
やりたいこと
これは良いことだが、レガシーなプロジェクトでは古い Node.js, Ruby のイメージを利用したい場合がある。 このようなイメージで非 root ユーザー, CLI のセットアップなどを簡単に、標準のイメージのようにしたい。
結論
この Feature が非 root ユーザー, CLI のセットアップを行い、標準のイメージのような体験を提供してくれる。
NOTE
DevContainer Features は Debian, Ubuntu を前提としたものが多い模様。
alpine 等では動作しない可能性があるので、十分注意する。
作成した設定ファイル
code: .devcontainer/Dockerfile
FROM ruby:2.7-slim
code:.devcontainer/devcontainer.json
{
"name": "Ruby 2.7",
"build": { "dockerfile": "./Dockerfile" },
"features": {
"ghcr.io/devcontainers/features/common-utils:2": {}
},
"remoteUser": "devcontainer"
}
あとがき
DevContainer Features は非常に便利で、asdf の Feature を利用して生の Debian イメージに必要なツールをすべて導入する、といったこともできる。
だが、それによりイメージのビルド時間が長くなる可能性があるので、注意したい。