Docker Compose での VS Code Dev Container において "Rebuild Container Without Cache" を選んでも全てのコンテナは止まらない(のでエラーになる)

※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 をする必要があります。

gyazo.com

感想

ブラックボックスで裏側でよしなにやってくれる仕組みでは、何も考えなくて良い一方で、何かあった時に原因を突き止めるのが困難ですね。

*1:ビルドするコンテナがない場合は不明

Powered by はてなブログ