[Docker] Windowsのdocker-compose upで「FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません」となったときの対処法

ヨメレバCSS

 とりあえず対処法として。

 環境はWindows10 Home、Docker Toolbox  18.03.0-ceです。

スポンサーリンク
GoogleAdSence レクタングル(大)

docker-compose upでエラーが出る

dynamodb-adminをdocker-composeで使用するために指定すると、docker-compose upで次のエラーが出てきました。

$ docker-compose.exe up
Pulling dynamodbadmin (instructure/dynamo-local-admin:latest)...
Traceback (most recent call last):
  File "site-packages\dockerpycreds\store.py", line 52, in _execute
  File "subprocess.py", line 336, in check_output
  File "subprocess.py", line 403, in run
  File "subprocess.py", line 709, in __init__
  File "subprocess.py", line 997, in _execute_child
FileNotFoundError: [WinError 2] 指定されたファイルが見つかりません。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "site-packages\docker\auth.py", line 126, in _resolve_authconfig_credstore
  File "site-packages\dockerpycreds\store.py", line 25, in get
  File "site-packages\dockerpycreds\store.py", line 70, in _execute
dockerpycreds.errors.StoreError: docker-credential-wincred not installed or not available in PATH

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "docker-compose", line 6, in <module>
  File "compose\cli\main.py", line 71, in main
  File "compose\cli\main.py", line 127, in perform_command
  File "compose\cli\main.py", line 1039, in up
  File "compose\cli\main.py", line 1035, in up
  File "compose\project.py", line 465, in up
  File "compose\service.py", line 321, in ensure_image_exists
  File "compose\service.py", line 1105, in pull
  File "site-packages\docker\api\image.py", line 359, in pull
  File "site-packages\docker\auth.py", line 47, in get_config_header
  File "site-packages\docker\auth.py", line 94, in resolve_authconfig
  File "site-packages\docker\auth.py", line 143, in _resolve_authconfig_credstore
docker.errors.DockerException: Credentials store error: StoreError('docker-credential-wincred not installed or not available in PATH',)
[18152] Failed to execute script docker-compose

 imageの指定をnginxなどに変更して試してみると問題なく動くようで、環境全体がおかしいわけではなさそうです。

config.jsonからwincredを削除した

 とりあえず対処療法としてですが、wincredが上手く使えていないようなので~/.docker/config.jsonから外してみました。

 元々のファイルが次のようになっていましたので、

{
  "credsStore": "wincred",
  "auths": {}
}

wincredの行だけ削りました。

{
  "auths": {}
}

 認証周りの話になるようなので、場合によってはまた別の(ちゃんとした)対応が必要になるところがあるかもしれませんが、imageのダウンロードくらいだったら無しでも大丈夫そうでした。

参考:

Hi, I am using docker toolbox for windows. When I try docker-login, I receive the following message: $ docker login error getting credentials - err: exec: "...

イメージをpullしておけば回避できる

 また別の方法として、docker-compose upする前にdocker pullしておけば回避できました。

スポンサーリンク
GoogleAdSence レクタングル(大)