docker / docker-py

A Python library for the Docker Engine API
https://docker-py.readthedocs.io/
Apache License 2.0
6.82k stars 1.67k forks source link

KeyError: 'http+docker' anytime I use command 'rocker' #3279

Open BaoJie456 opened 2 months ago

BaoJie456 commented 2 months ago

I met this problem when I was using 'rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware:latest-runtime-cuda'. Then I found it happens everytime I use command 'rocker'. It seems a package problem from rocker, not related to other packages.

The commands I tried:

  1. _rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autowaremap -- ghcr.io/autowarefoundation/autoware:latest-runtime-cuda
  2. rocker --version
  3. rocker

The terminal screenshot:

image

The log:

Traceback (most recent call last): File "/usr/bin/rocker", line 33, in sys.exit(load_entry_point('rocker==0.2.16', 'console_scripts', 'rocker')()) File "/usr/lib/python3/dist-packages/rocker/cli.py", line 45, in main extension_manager.extend_cli_parser(parser, default_args) File "/usr/lib/python3/dist-packages/rocker/core.py", line 131, in extend_cli_parser p.register_arguments(parser, default_args) File "/usr/lib/python3/dist-packages/rocker/extensions.py", line 160, in register_arguments client = get_docker_client() File "/usr/lib/python3/dist-packages/rocker/core.py", line 217, in get_docker_client docker_client.ping() File "/usr/lib/python3/dist-packages/docker/api/daemon.py", line 166, in ping return self._result(self._get(self._url('/_ping'))) == 'OK' File "/usr/lib/python3/dist-packages/docker/utils/decorators.py", line 46, in inner return f(self, *args, kwargs) File "/usr/lib/python3/dist-packages/docker/api/client.py", line 230, in _get return self.get(url, self._set_request_timeout(kwargs)) File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 602, in get return self.request("GET", url, kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 589, in request resp = self.send(prep, send_kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 633, in send conn = self.get_connection_with_tls_context( File "/usr/local/lib/python3.8/dist-packages/requests/adapters.py", line 489, in get_connection_with_tls_context conn = self.poolmanager.connection_from_host( File "/usr/lib/python3/dist-packages/urllib3/poolmanager.py", line 234, in connection_from_host return self.connection_from_context(request_context) File "/usr/lib/python3/dist-packages/urllib3/poolmanager.py", line 244, in connection_from_context pool_key_constructor = self.key_fn_by_scheme[scheme] KeyError: 'http+docker'

The system and environment

Ubuntu 20.04 python3-rocker 0.2.16-100

Thanks for your help!

KingOfDem0n commented 2 months ago

I have the same issue. In my case, it was because of “requests” pip package version needs to be 2.22.0

Check your “requests” version pip show requests

If its version is not 2.22.0, reinstall it to version 2.22.0 pip install --force-reinstall -v “requests==2.22.0”

rocker commands should work now.

BaoJie456 commented 2 months ago

I have the same issue. In my case, it was because of “requests” pip package version needs to be 2.22.0

Check your “requests” version pip show requests

If its version is not 2.22.0, reinstall it to version 2.22.0 pip install --force-reinstall -v “requests==2.22.0”

rocker commands should work now.

Sorry, it didn't work for me. I have reinstall requests==2.22.0 but this problem still exists. image image