[ZBX-13224] mem_limit no more supported with recent docker-compose (1.18.0) Created: 2017 Dec 20  Updated: 2018 Sep 01  Resolved: 2018 Jan 02

Status: Closed
Project: ZABBIX BUGS AND ISSUES
Component/s: Installation (I)
Affects Version/s: 3.4.4, 4.0.0alpha1
Fix Version/s: None

Type: Incident report Priority: Major
Reporter: Marc Assignee: Unassigned
Resolution: Won't fix Votes: 0
Labels: compatibility, docker-compose, version
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified


 Description   

Steps to reproduce:

  1. Clone GitHub project:
    [root@e3ee3b85b962 ~]# git clone https://github.com/zabbix/zabbix-docker.git
    Cloning into 'zabbix-docker'...
    remote: Counting objects: 4773, done.
    remote: Compressing objects: 100% (3/3), done.
    remote: Total 4773 (delta 4), reused 3 (delta 3), pack-reused 4767
    Receiving objects: 100% (4773/4773), 668.76 KiB | 331.00 KiB/s, done.
    Resolving deltas: 100% (3149/3149), done.
    [root@e3ee3b85b962 ~]#
    
  2. Create and start containers via docker-compose:
    [root@e3ee3b85b962 zabbix-docker]# docker-compose -f docker-compose_v2_alpine_pgsql_latest.yaml up -d
    

Result:

Traceback (most recent call last):
  File "/usr/bin/docker-compose", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 71, in main
    command()
  File "/usr/lib/python2.7/site-packages/compose/cli/main.py", line 121, in perform_command
    project = project_from_options('.', options)
  File "/usr/lib/python2.7/site-packages/compose/cli/command.py", line 37, in project_from_options
    override_dir=options.get('--project-directory'),
  File "/usr/lib/python2.7/site-packages/compose/cli/command.py", line 91, in get_project
    config_data = config.load(config_details)
  File "/usr/lib/python2.7/site-packages/compose/config/config.py", line 375, in load
    for config_file in config_details.config_files
  File "/usr/lib/python2.7/site-packages/compose/config/config.py", line 506, in process_config_file
    environment)
  File "/usr/lib/python2.7/site-packages/compose/config/config.py", line 497, in interpolate_config_section
    environment
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 44, in interpolate_environment_variables
    for name, config_dict in config.items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 44, in <genexpr>
    for name, config_dict in config.items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 39, in process_item
    for key, val in (config_dict or {}).items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 39, in <genexpr>
    for key, val in (config_dict or {}).items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 54, in interpolate_value
    return recursive_interpolate(value, interpolator, get_config_path(config_key, section, name))
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 74, in recursive_interpolate
    for (key, val) in obj.items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 74, in <genexpr>
    for (key, val) in obj.items()
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 70, in recursive_interpolate
    return converter.convert(config_path, interpolator.interpolate(obj))
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 184, in convert
    return self.map[rexp](value)
  File "/usr/lib/python2.7/site-packages/compose/config/interpolation.py", line 141, in to_int
    return int(s, base=0)
ValueError: invalid literal for int() with base 0: '512m'
[root@e3ee3b85b962 zabbix-docker]#

Expected:

Creating zabbixdocker_zabbix-server_1           ... done
Creating zabbixdocker_zabbix-snmptraps_1        ...
Creating zabbixdocker_mysql-server_1            ... done
Creating zabbixdocker_db_data_pgsql_1           ...
Creating zabbixdocker_postgres-server_1         ...
Creating zabbixdocker_mysql-server_1            ...
Creating zabbixdocker_zabbix-web-nginx-pgsql_1  ... done
Creating zabbixdocker_zabbix-proxy-mysql_1      ... done
Creating zabbixdocker_zabbix-proxy-sqlite3_1    ...
Creating zabbixdocker_zabbix-web-apache-pgsql_1 ... done
Creating zabbixdocker_zabbix-proxy-sqlite3_1    ... done
Creating zabbixdocker_zabbix-agent_1            ... done
[root@e3ee3b85b962 zabbix-docker]#

See also
Compose file versions and upgrading - Upgrading Version 2.x to 3.x, docs.docker.com



 Comments   
Comment by Dmitrijs Lamberts [ 2018 Jan 02 ]

Hello Marc,

As you can see from the name docker-compose_v2_alpine_pgsql_latest.yaml it is for version 2.x
So it is expected that it is not working in Compose v3.

Best regards,
Dmitry

Comment by Marc [ 2018 Jan 02 ]

True! But since docker-compose does not seem to take the configuration version into account for backward compatibility, wouldn't it then make more sense to keep it compatible with recent versions? Well, or to at least avoid directives that is incompatible with recent versions?

Comment by Juan Luis Baptiiste [ 2018 Sep 01 ]

Hi,

The problem here is an identation problem on the mem_limit parameter on the zabbix-server definitiion as described here: https://github.com/docker/compose/issues/5527

Generated at Sat Apr 27 02:55:24 EEST 2024 using Jira 9.12.4#9120004-sha1:625303b708afdb767e17cb2838290c41888e9ff0.