podman-compose
podman-compose copied to clipboard
ValueError: No closing quotation with command containing dolars
In a simple docker-compose like this one:
version: "3"
services:
app:
image: alpine
command: sh -c "date && echo $HOME"
That docker-file has no problem with docker-compose, but fails in podman-compose:
podman pod create --name=quotes --share net
6c5743520cbf372ccabde07c770c9a8b3630076347b36d6a58fc0b331c477a2e
0
Traceback (most recent call last):
File "/usr/bin/podman-compose", line 11, in <module>
load_entry_point('podman-compose==0.1.6.dev0', 'console_scripts', 'podman-compose')()
File "/usr/lib/python3.7/site-packages/podman_compose.py", line 1267, in main
podman_compose.run()
File "/usr/lib/python3.7/site-packages/podman_compose.py", line 755, in run
cmd(self, args)
File "/usr/lib/python3.7/site-packages/podman_compose.py", line 939, in wrapped
return func(*args, **kw)
File "/usr/lib/python3.7/site-packages/podman_compose.py", line 1060, in compose_up
detached=args.detach, podman_command=podman_command)
File "/usr/lib/python3.7/site-packages/podman_compose.py", line 573, in container_to_args
podman_args.extend(shlex.split(command))
File "/usr/lib64/python3.7/shlex.py", line 310, in split
return list(lex)
File "/usr/lib64/python3.7/shlex.py", line 299, in __next__
token = self.get_token()
File "/usr/lib64/python3.7/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib64/python3.7/shlex.py", line 191, in read_token
raise ValueError("No closing quotation")
ValueError: No closing quotation
I don't find any possibility to escape
Use the devel branch and merge pull request 98 yourself. Than this is fixed.
#98 is not the right one. It seems that #97 is the one you wanted to mention.
Didn't tried yet, because I'm using distribution package for now, but it could be necessary that authors merge several PR to make podman-compose more usable.
I get a similar result using py3-pip/pip3, but sorry I don’t know what “dólars” are.
$ pip install --upgrade pip --force-reinstall
ERROR: Exception:
Traceback (most recent call last):
File "/usr/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 188, in _main
status = self.run(options, args)
File "/usr/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 185, in wrapper
return func(self, options, args)
File "/usr/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 278, in run
session = self.get_default_session(options)
File "/usr/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 83, in get_default_session
self._session = self.enter_context(self._build_session(options))
File "/usr/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 93, in _build_session
session = PipSession(
File "/usr/lib/python3.8/site-packages/pip/_internal/network/session.py", line 249, in init
self.headers["User-Agent"] = user_agent()
File "/usr/lib/python3.8/site-packages/pip/_internal/network/session.py", line 132, in user_agent
zip(["name", "version", "id"], distro.linux_distribution()),
File "/usr/lib/python3.8/site-packages/distro.py", line 125, in linux_distribution
return _distro.linux_distribution(full_distribution_name)
File "/usr/lib/python3.8/site-packages/distro.py", line 680, in linux_distribution
self.name() if full_distribution_name else self.id(),
File "/usr/lib/python3.8/site-packages/distro.py", line 718, in name
name = self.os_release_attr('name')
File "/usr/lib/python3.8/site-packages/distro.py", line 894, in os_release_attr
return self._os_release_info.get(attribute, '')
File "/usr/lib/python3.8/site-packages/distro.py", line 556, in get
ret = obj.dict[self._fname] = self._f(obj)
File "/usr/lib/python3.8/site-packages/distro.py", line 933, in _os_release_info
return self._parse_os_release_content(release_file)
File "/usr/lib/python3.8/site-packages/distro.py", line 964, in _parse_os_release_content
tokens = list(lexer)
File "/usr/lib/python3.8/shlex.py", line 300, in next
token = self.get_token()
File "/usr/lib/python3.8/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib/python3.8/shlex.py", line 191, in read_token
raise ValueError("No closing quotation")
ValueError: No closing quotation
Traceback (most recent call last):
File "/usr/bin/pip", line 11, in
File "/usr/lib/python3.8/site-packages/distro.py", line 894, in os_release_attr
return self._os_release_info.get(attribute, '')
File "/usr/lib/python3.8/site-packages/distro.py", line 556, in get
ret = obj.dict[self._fname] = self._f(obj)
File "/usr/lib/python3.8/site-packages/distro.py", line 933, in _os_release_info
return self._parse_os_release_content(release_file)
File "/usr/lib/python3.8/site-packages/distro.py", line 964, in _parse_os_release_content
tokens = list(lexer)
File "/usr/lib/python3.8/shlex.py", line 300, in next
token = self.get_token()
File "/usr/lib/python3.8/shlex.py", line 109, in get_token
raw = self.read_token()
File "/usr/lib/python3.8/shlex.py", line 191, in read_token
raise ValueError("No closing quotation")
ValueError: No closing quotation