DockerDesktop(Windows)ことはじめ
Installation Guide · homuler/MediaPipeUnityPlugin Wiki · GitHub
これをやろうとして、どうにもひっかかったのでメモ
最初のチュートリアルはここを見ながらやるとうまくいった。
DockerをインストールしてLinux系コンテナを構築したときの備忘録 - Qiita
問題
Dockerfileのなかの
RUN curl -L http://repo.msys2.org/distrib/x86_64/msys2-base-x86_64-20210604.sfx.exe
このへんで
0curl: (6) Could not resolve host: repo.msys2.org
というエラーが出ました。
調べたこと
DockerのDNS設定
まずDocker実行時に--add-hostでホストを追加。もしくは--dnsでDNSサーバー追加。nslookupでrepo.msys2.orgのIPアドレスを調べて指定する。
docke build --add-host=repo.msys2.org:178.63.98.68 -t mediapipe_unity:windows . -f docker/windows/x86_64/Dockerfile
みたいにやってみたがCould not resolveの表示は変わらず。
curl doesn't work during docker build - Stack Overflow
dockerfile - How to update /etc/hosts file in Docker image during "docker build" - Stack Overflow
Dockerのコンテナの中からホストOS上のプロセスと通信する方法 - Qiita
この辺も気になる
Dockerコンテナ内の名前解決への /etc/hosts の影響 - Qiita
firewallをオフにしてみたが変わらず。
Dockerをもうちょっと触ってみる
Dockerのイメージを起動して直接操作してみる(Dockerfileまかせではなく)。
「docker run -it」にするとコンテナがすぐに終了しない理由 - プログラミング初心者がアーキテクトっぽく語る
まず
docker run -it [image ID]
で入る。次に
C:>ping 178.63.98.68
Pinging 178.63.98.68 with 32 bytes of data:
Reply from 178.63.98.68: bytes=32 time=254ms TTL=51
Reply from 178.63.98.68: bytes=32 time=254ms TTL=51
Reply from 178.63.98.68: bytes=32 time=254ms TTL=51
Reply from 178.63.98.68: bytes=32 time=254ms TTL=51Ping statistics for 178.63.98.68:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 254ms, Maximum = 254ms, Average = 254msC:>ping repo.msys2.org Ping request could not find host repo.msys2.org. Please check the name and try again.
とやってみた。ネットワークは出ているがIPが解決できないようだ。 Windowで/etc/hostsにあたる場所はC:\Windows\System32\drivers\etc\hostsらしいが、これはどうやって編集すればいいんだ。
docker コンテナ内でファイルが編集できない | mebee
これか?これもコンテナ名とパスの書き方がちょっとわからないな…。
ここも参考に
その前に問題のDockerfileを見るとこの後にもいろいろダウンロードするっぽいので、DNS自体の設定をした方がよさそうだ。
しかしここで詰んだ。
Dockerコンテナ内の名前解決への /etc/hosts の影響 - Qiita
Docker Desktop for Windows のネットワーク構築機能 — Docker-docs-ja 19.03 ドキュメント
ここには書いてないっぽい
コンテナの DNS を設定 — Docker-docs-ja 1.10.0b ドキュメント
これもLinuxコンテナぽい
これは試してみたが、変えるべき設定は自分の環境では問題なさそうだった
How to set DNS in Docker for windows? – QuickAdviser
情報が古そう。しょっぱなの
Just right click on docker’s icon in the tray bar and select “Settings” item. Then, on the Docker’s window, select the “Network” section and change the DNS option from “Automatic” to “Fixed” and hit “Apply”.
この項目がもう存在しないもんな。