Visual Studio Codeで「Failed to save」犯人はDocker for Windows2.2.0.0だった

docker-for-windows 2.2.0.0

2020年1月21日にDocker for Windows 2.2.0.0がリリースされました。

WSL2対応、おまけにダッシュボードもついてコンテナの管理が楽に。
まだWSL2が正式リリースされていないけど、インストールしてみました。

しかし、Visual Studio Code(VSCode)のRemote-Containersで
Dockerに接続して開発していると以下のメッセージが表示されました。

「Failed to save ‘app.py’: The content of the file is newer. Please
compare your version with the file contents.」

これが表示されるとcompareしてconflictの解消をしないと保存されません。

たまに発生するならガマンしますが、VSCodeでAuto Saveを設定していると、
ちょくちょくメッセージが表示されてうっとおしい…

いつも通りGoogle先生やフォーラム師匠にお手伝いしてもらって犯人探し。


犯人はお前だ!「Docker for Windows 2.2.0.0」

結局、Docker for Windows 2.1.0.5を再インストールすることにしました。


環境
Windows 10 pro 1903
VSCode 1.41.1
Docker for Windows 2.2.0.0

原因と解決策

Docker for Windows 2.2.0.0で発生しているバグのようです。

解決策

  • ・新しいバージョンがリリースされるのを待つ
  • ・Docker for Windows 2.2.0.0をアンインストールしてDocker for Windows 2.1.0.5をインストールする

作業できないわけではないけれど、新しいバージョンがリリースされるまで
ガマンしなければならないなんてムリ。
なので、今回はアンインストールして以前のバージョンをインストールすることにしました。

Docker for Windows 2.2.0.0をアンインストール

「スタートメニュー」→「アプリ」→「アプリと機能」から「Docker Desktop」を選択し「アンインストール」

コンテナやイメージが削除されますが、Dockerfileやdocker-compose.ymlがあれば再構築できるので、
容赦なくアンインストール。

恨みつらみを込めてアンインストール。

Docker for Windows 2.1.0.5をインストール

インストーラーをダウンロードし、インストール。

Docker Desktop Community 2.1.0.5
https://docs.docker.com/docker-for-windows/release-notes/#docker-desktop-community-2105

インストールが終わったら再起動したほうがよかった。
仮想ネットワークがWindowsに追加されていなくて、
Dockerの「Settings」→「Shared Drives」がオンにできませんでした。

まとめ

今回はDocker for Windows 2.2.0.0をアンインストールし、
Docker for Windows 2.1.0.5をインストールすることでVSCodeの「Failed to save」を回避しました。

余計な手間がないと快適ですね。
そもそも2.2.0.0を入れなければ余計な手間が発生しなかっただろってのはナシでw
新しいものを試すのは楽しいですよね!ね?

Dockerfileやdocker-compose.ymlさえあればすぐに環境を作れるので、
気兼ねなくアンインストールもできました。

こんなところでDockerの恩恵を受けるとは思いませんでしたが…
Docker便利! ってことで。