概要
- vscode における devcontainer を使用しての開発環境構築をやっている人も多いと思います。
- 今回は、devcontainer におけるコンテナのライフサイクルの観点で用意されているコマンドの使い分けについてをまとめていきます。
devcontainer におけるライフサイクルスクリプト
- .devcontainer/devcontainer.json 内に devcontainer で起動されるコンテナのライフサイクルごとに実行されるコマンドを仕込むことができます。
- 使い方としては、例えばコンテナ作成時に sh を1回限りで実行したいとか devcontainer 起動時には毎回実行してほしいといった要望があるときに用意されているコマンドを仕込んでおくと実現できます。
使い方の例
.devcontainer/devcontainer.json
{
"name": "hoge",
"image": "hoge",
"postCreateCommand": "sh create.sh",
"postStartCommand": "sh start.sh"
}
Property | 説明 |
---|---|
initializeCommand | コンテナが作成される前にホストマシンで実行されます。 |
onCreateCommand | postCreateCommand と同様にコンテナが初めて開始された直後にコンテナ内で実行されます。(devコンテナ作成時にコンテナをセットアップする3つのステップのうちの1番目) |
updateContentCommand | 作成プロセス中に新しいコンテンツがソースツリーで利用可能になるたびに、onCreateCommand の後にコンテナ内で実行されます。(devコンテナ作成時にコンテナをセットアップする3つのステップのうちの2番目) |
postCreateCommand | updateContentCommand の後に dev コンテナが初めてユーザーに割り当てられたときに実行されます。(devコンテナ作成時にコンテナをセットアップする3つのステップのうちの3番目) |
postStartCommand | コンテナが正常に開始されるたびに実行されます。 |
postAttachCommand | ツールがコンテナに正常にアタッチされるたびに実行されます。 |
参考資料