既存のコンテナーにソフトウェアを追加する

完了

カスタマイズしたコンテナーは、お客様の機関に最適なものになります。 Dev Containers の機能を使用して、事前に構成された開発コンテナーを追加できました。また、これまでの演習では、devcontainer.json ファイルを通じてエクスペリエンスをカスタマイズしました。 そうではなく、こうしたイメージまたは事前に構成された開発コンテナーで使用できるもの以外のソフトウェアを追加する場合はどうでしょうか。

追加ソフトウェアのインストールの概要

追加ソフトウェアには、お客様の機関用の別のテクノロジ スタックなどがあります。 たとえば、多くの開発ワークフローに含まれることがわかっている場合には、Node.js を任意の dev コンテナーに含めることができます。

Dev Containers: 開発コンテナー構成ファイルの追加を実行した場合は、.devcontainer フォルダーがアプリに追加されています。 このコンテナー イメージに基づいて devcontainer.json ファイルが含まれていました。 このイメージには、チームに役立つ多くのオプションが用意されていますが、それらに対して反復処理をするために他のソフトウェアをインストールすることもあります。

ソフトウェアをインストールする方法

統合ターミナルを使用してソフトウェアをインストールできます。 ほとんどのコンテナー イメージは Debian または Ubuntu に基づいており、apt または apt-get コマンドを使用して新しいパッケージをインストールします。

重要

apt-get から何かをインストールする場合は、最初に apt-get update を実行します。 このコマンドを実行すると、パッケージとパッケージ リポジトリのリストが更新され、最新のリストがキャッシュされます。

ただし、.devcontainer フォルダーに変更を加えて、コンテナーをリビルドする必要がある場合は、手動でインストールしたものを再インストールする必要があります。 この問題を回避するために、前のユニットで説明したように、devcontainer.jsonpostCreateCommand プロパティを使用できます。

再構築後も変更を保持する最も効率的な方法は、機能を使ってソフトウェアをインストールすることです。

機能を使ったソフトウェアのインストール

このモジュールのユニット 5 で説明したように、開発コンテナーの "機能" は自己完結型であり、インストール コードと開発コンテナーの構成の共有可能なユニットです。 この名前は、いずれかを参照することで、自分自身やコラボレーターが使うツール、ランタイム、またはライブラリの "機能" をすばやく簡単に開発コンテナーに追加できるという考えに由来しています。

VS Code のコマンド [Dev Containers: Add Dev Container Configuration Files] (Dev Containers: 開発コンテナーの構成ファイルの追加) を使うと、Git や Azure CLI のインストールなど、既存の開発コンテナーの構成をカスタマイズするスクリプトの一覧が表示されます。

コンテナーをリビルドして開き直すと、選んだ機能が devcontainer.json で使用できるようになります。

"features": {
    "ghcr.io/devcontainers/features/azure-cli:1": {
        "version": "latest"
    }
}

VS Code の [Dev Containers: Configure Container Features] (Dev Containers: コンテナー機能の構成) コマンドを使うと、既存の構成を更新できます。

VS Code UI で提供される機能は中央のインデックスから取得されるようになりました。ここで調べることや、貢献することができます。

詳細については、しくみとそのディストリビューションに関する記事を参照してください。

次の演習では、Next.js をインストールします。 次に、実行中のコンテナーで Node.js が使用可能であることを確認します。