Windows コンテナ の docker build 時に hcsshim::PrepareLayer - failed failed in Win32: Incorrect function. (0x1) が発生する場合の対処
問題 Windows コンテナで docker-compose build で次のエラーが発生。 エラー画面 何回か試したが解消せず。 原因 どうやら Box が原因っぽい。 stackoverflow.com C:\windows\system32\driver\cbfsconnect2017.sys を利用していると発生するっぽい。 cbfs6.sys だということもあるそうでこの辺はよくわからない。 確認したところ確かに該当のファイルが存在していた。 cbfsconnect2017.sys fltmc というコマンドで利用していることを確認できる。レガシーとでるのでなんとなく良くなさそうな感じはする ファイル削除前fltmc確認結果 対処 とりあえず読み込まれないようにリネームして再起動をした cbfsconnect2017.sys.bakにリネーム 対処確認 再び fltmc で確認したところ読み込みはされなくなっていた。 ファイルリネーム後fltmc確認結果 docker-compose build でエラーが出ないことを確認した。 副作用 当然ながら、 Box Drive クライアントがエラー出るようになってしまい起動できなくなる。 まとめ Github に Issue が上がっていてまだ解決していない。 github.com Box Drive が利用しているリネームしたドライバーは CBFS Connect というものみたいだ。このドライバーは2020年にワークアラウンドで対応したとも Issue に書いてあるが、まだ発生しているようにも思える。 www.callback.com Box Drive を利用する場合 Windows コンテナを利用するのは控えたほうが良いと言わざるを得ない。また、Box 以外にもこのドライバーを利用しているソフトはいくつかあるので、結構根が深い問題となりそう。