※2022/01/18現在の情報です
結論
VS Code Dev Container のメニューで Rebuild Container
の項目があります。この項目はさらに以下の 2つ の項目に分かれます。
Remote-Containers: Rebuild Container Without Cache
Remote-Containers: Rebuild Container
このとき、前者の Remote-Containers: Rebuild Container Without Cache
を選んだ場合、docker-compose.yml
内においてビルドしないコンテナはそのまま動き続けます*1。
後者の場合は全てのコンテナが止まって作り直されます。
上記の動作により、Remote-Containers: Rebuild Container Without Cache
を選んだ場合には、たとえば DB は起動しっぱなしになるも、アプリケーション側はコンテナが作り直されます。この状況下で例えば volume を bind していた場合には整合性が取れずにエラーになります。
そうなった場合には一つ一つコンテナを手動で止めて、改めて Remote-Containers: Rebuild Container Without Cache
をする必要があります。
感想
ブラックボックスで裏側でよしなにやってくれる仕組みでは、何も考えなくて良い一方で、何かあった時に原因を突き止めるのが困難ですね。
*1:ビルドするコンテナがない場合は不明