どうも、三町哲平です!
__Docker Desktop Community 3.0.0__という
Dockerの最新バージョンが2020-12-10に出ましたね!
Docker Desktopでは、最新バージョンが出るたびにアップデート通知がきますので、私も基本的に通知が来たらアップデートをしていました。
よくインターネットの書き込みなんかに○○のアプリをアップデートしたら不具合が起きたのでダウングレードしました。なんていうのを見る機会がありますが、私は今までその経験をしたことがなく、半ば都市伝説の様な半信半疑の感覚であり、他人ごとの様に感じていましたが、本日__Docker Desktop Community 3.0.0__で不具合が発生したので大慌てです。
Cannot start service ec-cube: Mounts denied
ERROR: Encountered errors while bringing up the project.
今まで通り、 $ docker-compose up でRailsの開発環境を立ち上げようとした所上記の様なエラーが発生して、使えたはずの__docker-compose__の機能が使えなくなっていました...(汗)
ちなみに上記のエラー画面は、Docker For Macを3.0.0にアップデートしたらec-cube(コンテナ)起動しなくなった - Qiitaの記事の引用をさせていただいております。当時は、焦っていてエラー内容をスクショ等で控える余裕がなかったのですね。
まずは、正解から
どうも正解は、2つあり
1つ目が.
⇒その①3.0.0を使う場合
Docker Preference(設定) > Experimental Features > Use gRPC Fuse for file sharing をオフる(デフォルトではONになっています)
だそうです。
※ちなみにこの引用も下記の記事の引用です。そしてこの記事のほとんどが下記記事の引用になります。
Docker For Macを3.0.0にアップデートしたらec-cube(コンテナ)起動しなくなった - Qiita
2つ目が.
=> その②2.5.系にダウングレードする
です。
ちなみに私は、解決策がわからなかったので、__②2.5.系にダウングレードする__を実行しました。
ダウングレードには、__一度Docker Desktopをアンインストール__した後に、
macユーザーだと、
Docker for Mac release notes | Docker Documentation
Windowsユーザーだと、
Docker for Windows release notes | Docker Documentation
から過去のバージョンを遡ってダウンロード→インストールまでできます。
まとめ
記事の構成まで、引用元のDocker For Macを3.0.0にアップデートしたらec-cube(コンテナ)起動しなくなった - Qiitaに似てしまいましたが、
- 作業優先でろくにメジャーバージョンアップデートであることを確認しなかったのは私のミスです..
- インストールするタイミングでコンテナSTOPしていなかったのが原因かもしれないです..
と@mksm_wrk さんは書いていらっしゃいますが、この状況が私と全く同じです。
私もアップデートの通知が来た時にバージョンを一切気にせずアップデートしましたし、インストールする際にコンテナは、起動中で作業をバリバリしておりました。
しかし、ここで気にするべき点は、私は__②2.5.系にダウングレードする__を選択して、@mksm_wrk さんが__①3.0.0を使う場合__を選択できた理由が何なのかということです。
それは、
今回も世界の知見にすくわれました、ありがとう🌏
と@mksm_wrk さんが書いている様に英語のサイトを参考にされているということです。
いわば、日本語ではない一次情報を取りに行っているといるいうのが私との明確な差として現れてしましました。
引用のさらに大元の記事:
Unable to mount protected Mac paths after upgrade to Docker 3.0.0 · Issue #5115 · docker/for-mac
これからは、翻訳機能を使いながらでも英語の記事を毛嫌いせずに読んでいかないといけなと素直に思いました。
3.0.1が出た!
なんと翌日の2020-12-11には、Docker Desktop Community 3.0.1が出ました。
__特定のディレクトリがコンテナにマウントできない問題を修正しました。docker / for-mac#5115を修正__と書いているのでこれが今回の件の事なのでしょう。
因みに私のDockerのバージョンは、
2.5.1→3.0.0(今回のエラー発生)→2.5.0(別のエラー発生)→3.0.1(2.5.0の時と同じエラーの為、対応中)
となっております。
話は、脱線しましたが、2.5.系にダウングレードする事で今回の3.0.0でのエラーに関しては間違いなく解決されています。2.5.0(別のエラー発生)に関しては、機会があれば記事にしますが、たぶん正攻法の様なやり方をしていないので、日記みたいにな記事になりそうで、書くかどうか迷っています。
あと、更にもう一つ脱線として、
3.0.1が更新された時日付は、12-12なのに、Dockerの公式サイトでは。2020-12-11となっていてなんでだろうと思っていましたが、多分下記の様な理由かなと思います。
日本はアメリカより半日以上早いと覚えておきましょう。
では、また。
続き
↓今回の記事の第二弾として記事を書きました。↓
Dockerアップデートでデータベース(DB)が使えなくなる罠について - Qiita