環境
- Mac
- 機種ID:MacBookPro18,3
- macOS:Monterey
- チップ: Apple M1 Pro
- メモリ: 16GB
- Dockerとは:オープンソースのコンテナ型の仮想化技術のプラットフォーム
※環境構築において、M1チップ固有の設定が色々ある模様。ネットにも記事がたくさんみられます。
今回発生したエラーがそれに該当するかはまだ分からないですが、あくまで私の場合、という見地で書いています。
どなたかの一助になればと思います。
前提
- 会社で既に存在しているプログラム(pythonで実装されている)を、自分のローカル環境でも利用したい。
- Homebrewを利用してインストールする。
Docker構築手順
Dockerインストール
-
brew install docker
を実施したところ、無事にインストール完了。-
docker --version
でDocker version 20.10.21, build baeda1f82a
と表示確認。 -
which docker
で/opt/homebrew/bin/docker
と表示確認。 -
docker run -d -p 80:80 docker/getting-started
で起動確認。 -
docker run hello-world
で 公式のhello-worldコンテナを実行。docker ps -a
で確認完了。
-
Docker Composeインストール
- Docker composeコマンドのインストールのために以下を実行
sudo curl -L https://github.com/docker/compose/releases/download/2.12.2/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
【エラー①】docker-compose -v でcommand not found 原因と解決策は...
-
/usr/local/bin/docker-compose
にあること確認 -
docker-compose -v
でcommand not foundエラーを確認。- パスが通っていないと考えてbashrcでパス追加したが、同様のコマンドエラーが発生。
- なぜだろうと思ったら、コマンド自体に問題があった。今は、docker composeを使うんですね。docker-composeのままの記事が多いため注意必要ですね汗
【エラー②】ERROR [internal] load metadata for 原因と解決策は...
-
docker compose build
実行したところ、新たなエラーメッセージが表示された
[+] Building 1.6s (3/3) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 32B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> ERROR [internal] load metadata for docker.io/library/python:3.6 1.5s
------
> [internal] load metadata for docker.io/library/python:3.6:
------
failed to solve: rpc error: code = Unknown desc = failed to solve with frontend dockerfile.v0: failed to create LLB definition: rpc error: code = Unknown desc = error getting credentials - err: docker-credential-desktop resolves to executable in current directory (./docker-credential-desktop), out: ``
- エラー対応のため、ネット記事を参考にDocker Engineをいじってみたが、解決せず(後で元に戻した)
- buildkitをfalseにする
- "insecure-registries": ["docker.io"],
- 参考:Dockerビルドエラー解決! | ERROR [internal] load metadata for …など
- 以下記事を参考に、
docker pull python 3.6
を実施してからbuildしたところ、無事に進行開始。- コンテナイメージのダウンロードが必要だから?だそう。
- 【Docker Desktop】Macにインストール【Monterey/M1】
-
docker images
結果で該当のコンテナイメージを確認。
【エラー③】error getting credentials - err: 原因と解決策は...
-
docker compose up -d
を実行したところ、また、新たなるエラーが表示された。
[+] Running 0/0
⠋ phpmyadmin Pulling 0.0s
⠋ mysql Pulling 0.0s
⠋ management-server Pulling 0.0s
error getting credentials - err: docker-credential-desktop resolves to executable in current directory (./docker-credential-desktop), out: ``
- 以下サイトの解決策を参考に、Docker Hubアカウントを作成してLoginを試みるが、以下メッセージ(上記とほぼ同様)が確認された
Error saving credentials: error storing credentials - err: docker-credential-desktop resolves to executable in current directory (./docker-credential-desktop), out: ``
-
上記サイトの解決策を参考に、
vi ~/.docker/config.json
で以下を対応。-
"credsStore": "desktop"
から、"credStore": "desktop"
に変更 - この "credStore"については、多くの記事で対応策として記載がありますが、なぜこうすると解決するのかは誰にもわからない模様...どなたか知っていたら教えてください^^
- DOCKER COMMUNITY FORUMSでは、この対応策のことが「golden answer」と書いてあります笑
-
-
docker compose up -d
をしたところ成功。 -
docker compose ps
でもimageを確認 -
なぜ
"credStore": "desktop"
でうまくいったのかわかる方がいらっしゃたら、ぜひ教えてください!!!
備忘録
- brewインストールする前に、ブラウザからMac用(M1チップ対応)のインストーラーをダウンロードしてDocker Desktopをインストールしたが、
docker --version
で反応なしだった。Rosetta2のインストールが関係ある? - Homebrew Caskという拡張版もあるようで、これは全て終わってから発見したもの。今回発生したエラーたちとは関係あるのだろうか...?