podman-compose icon indicating copy to clipboard operation
podman-compose copied to clipboard

ValueError: No closing quotation with command containing dolars

Open metal3d opened this issue 4 years ago • 3 comments

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

metal3d avatar Mar 24 '20 22:03 metal3d

Use the devel branch and merge pull request 98 yourself. Than this is fixed.

disaster123 avatar Mar 25 '20 06:03 disaster123

#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.

metal3d avatar Mar 25 '20 11:03 metal3d

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 load_entry_point('pip==20.1.1', 'console_scripts', 'pip')() File "/usr/lib/python3.8/site-packages/pip/_internal/cli/main.py", line 75, in main return command.main(cmd_args) File "/usr/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 114, in main return self._main(args) File "/usr/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 226, in _main self.handle_pip_version_check(options) File "/usr/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 152, in handle_pip_version_check session = self._build_session( 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

62f avatar Oct 03 '20 22:10 62f