eWaterCycle / eWaterCycle/grpc4bmi

Do we want to support podman in grpc4bmi?

Open
#127 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
5
Forks
5
PR merge metrics
No merged PRs in 30d

Description

[Podman](https://docs.podman.io/en/latest/) is an alternative to docker. It's used as `alias docker=podman`.

However, this is incompatible with grpc4bmi. In grpc4bmi, we used the [docker python library](https://docker-py.readthedocs.io/en/stable/) like so:

```
import docker
client = docker.from_env()
```

This fails with

```
...
ConnectionError: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))

During handling of the above exception, another exception occurred:

DockerException Traceback (most recent call last)
Cell In[4], line 1
----> 1 docker.from_env()

File ~/mambaforge/envs/ewatercycle/lib/python3.10/site-packages/docker/client.py:96, in DockerClient.from_env(cls, **kwargs)
94 version = kwargs.pop('version', None)
95 use_ssh_client = kwargs.pop('use_ssh_client', False)
---> 96 return cls(
97 timeout=timeout,
98 max_pool_size=max_pool_size,
99 version=version,
100 use_ssh_client=use_ssh_client,
101 **kwargs_from_env(**kwargs)
102 )

File ~/mambaforge/envs/ewatercycle/lib/python3.10/site-packages/docker/client.py:45, in DockerClient.__init__(self, *args, **kwargs)
44 def __init__(self, *args, **kwargs):
---> 45 self.api = APIClient(*args, **kwargs)

File ~/mambaforge/envs/ewatercycle/lib/python3.10/site-packages/docker/api/client.py:197, in APIClient.__init__(self, base_url, version, timeout, tls, user_agent, num_pools, credstore_env, use_ssh_client, max_pool_size)
192 # version detection needs to be after unix adapter mounting
193 if version is None or (isinstance(
194 version,
195 str
196 ) and version.lower() == 'auto'):
--> 197 self._version = self._retrieve_server_version()
198 else:
199 self._version = version

File ~/mambaforge/envs/ewatercycle/lib/python3.10/site-packages/docker/api/client.py:221, in APIClient._retrieve_server_version(self)
216 raise DockerException(
217 'Invalid response from docker daemon: key "ApiVersion"'
218 ' is missing.'
219 )
220 except Exception as e:
--> 221 raise DockerException(
222 f'Error while fetching server API version: {e}'
223 )

DockerException: Error while fetching server API version: ('Connection aborted.', FileNotFoundError(2, 'No such file or directory'))
```

I haven't looked much into it, but if there's no clear way around it, than perhaps [podman-py](https://github.com/containers/podman-py) could be an option

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.