containers / podman-compose

a script to run docker-compose.yml using podman
GNU General Public License v2.0
5.01k stars 477 forks source link

TypeError in podman_compose.py container_to_args #957

Open sischnei opened 3 months ago

sischnei commented 3 months ago

Describe the bug Trying to use podman-compose to bring up a zabbix 6.4 setup as outlined https://www.zabbix.com/documentation/6.4/en/manual/installation/containers results in the following traceback:

$ podman-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up

podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 4.4.1
** excluding:  set()
['podman', 'ps', '--filter', 'label=io.podman.compose.project=zabbix-docker', '-a', '--format', '{{ index .Labels "io.podman.compose.config-hash"}}']
Traceback (most recent call last):
  File "/home/jenkins/.local/bin/podman-compose", line 8, in <module>
    sys.exit(main())
  File "/home/jenkins/.local/lib/python3.9/site-packages/podman_compose.py", line 2941, in main
    podman_compose.run()
  File "/home/jenkins/.local/lib/python3.9/site-packages/podman_compose.py", line 1423, in run
    cmd(self, args)
  File "/home/jenkins/.local/lib/python3.9/site-packages/podman_compose.py", line 1754, in wrapped
    return func(*args, **kw)
  File "/home/jenkins/.local/lib/python3.9/site-packages/podman_compose.py", line 2067, in compose_up
    podman_args = container_to_args(compose, cnt, detached=args.detach)
  File "/home/jenkins/.local/lib/python3.9/site-packages/podman_compose.py", line 890, in container_to_args
    i = os.path.realpath(os.path.join(dirname, i))
  File "/usr/lib64/python3.9/posixpath.py", line 90, in join
    genericpath._check_arg_types('join', a, *p)
  File "/usr/lib64/python3.9/genericpath.py", line 152, in _check_arg_types
    raise TypeError(f'{funcname}() argument must be str, bytes, or '
TypeError: join() argument must be str, bytes, or os.PathLike object, not 'dict'

To Reproduce Steps to reproduce the behavior (following the instructions outlined on the Zabbix documentation https://www.zabbix.com/documentation/6.4/en/manual/installation/containers):

  1. git clone https://github.com/zabbix/zabbix-docker.git
  2. git checkout 6.4
  3. podman-compose -f ./docker-compose_v3_alpine_mysql_latest.yaml up

Expected behavior podman-compose should (in default cases) work as a replacement for docker-compose

Actual behavior The command fails with the aforementioned trackback.

Output

$ podman-compose version
podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 4.4.1
podman-compose version 1.0.6
podman --version
podman version 4.4.1
exit code: 0

Environment:

pMertDogan commented 3 months ago

I think this required makes a problem. I was commented it and its works. But should be works out of the box

Update compose_zabbix_components and compose_databases files and comment this "required"

- path: ${ENV_VARS_DIRECTORY}/.env_prx_mysql_override

 # required: false