KeyError: 'http+docker' anytime I use command 'rocker'
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 7.2k
- Forks
- 1.7k
- Avg merge
- 13d 8h
- Merged PRs (30d)
- 2
Description
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:
- rocker --nvidia --x11 --user --volume $HOME/autoware --volume $HOME/autoware_map -- ghcr.io/autowarefoundation/autoware:latest-runtime-cuda
- rocker --version
- rocker
The terminal screenshot:
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!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the failure with rocker --version and inspect the traceback through rocker/cli.py, rocker/core.py, rocker/extensions.py, and docker/api/client.py. Trace the Docker client ping until the http+docker lookup fails; done means the reported commands no longer raise KeyError and the existing Docker API behavior remains functional.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- api, backend
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100