FS#54617 - [python-docker] 2.4.0 breaks docker-compose
Attached to Project:
Community Packages
Opened by David McKay (rawkode) - Wednesday, 28 June 2017, 08:49 GMT
Last edited by Felix Yan (felixonmars) - Thursday, 29 June 2017, 16:38 GMT
Opened by David McKay (rawkode) - Wednesday, 28 June 2017, 08:49 GMT
Last edited by Felix Yan (felixonmars) - Thursday, 29 June 2017, 16:38 GMT
|
Details
Description:
`docker-compose` itself works, but any sub-command leads to the errors below. Additional info: * python-docker-2.4.0 ``` Traceback (most recent call last): File "/usr/bin/docker-compose", line 11, in <module> load_entry_point('docker-compose==1.14.0', 'console_scripts', 'docker-compose')() File "/usr/lib/python3.6/site-packages/compose/cli/main.py", line 68, in main command() File "/usr/lib/python3.6/site-packages/compose/cli/main.py", line 115, in perform_command project = project_from_options('.', options) File "/usr/lib/python3.6/site-packages/compose/cli/command.py", line 37, in project_from_options override_dir=options.get('--project-directory'), File "/usr/lib/python3.6/site-packages/compose/cli/command.py", line 91, in get_project config_data = config.load(config_details) File "/usr/lib/python3.6/site-packages/compose/config/config.py", line 362, in load for config_file in config_details.config_files File "/usr/lib/python3.6/site-packages/compose/config/config.py", line 362, in <listcomp> for config_file in config_details.config_files File "/usr/lib/python3.6/site-packages/compose/config/config.py", line 528, in process_config_file validate_against_config_schema(config_file) File "/usr/lib/python3.6/site-packages/compose/config/validation.py", line 378, in validate_against_config_schema config_file.filename) File "/usr/lib/python3.6/site-packages/compose/config/validation.py", line 435, in handle_errors errors = list(sorted(errors, key=str)) File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 304, in properties_draft4 schema_path=property, File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 121, in descend for error in self.iter_errors(instance, schema): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 16, in patternProperties v, subschema, path=k, schema_path=pattern, File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 121, in descend for error in self.iter_errors(instance, schema): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 216, in ref for error in validator.descend(instance, resolved): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 121, in descend for error in self.iter_errors(instance, schema): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 304, in properties_draft4 schema_path=property, File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 121, in descend for error in self.iter_errors(instance, schema): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 55, in items for error in validator.descend(item, items, path=index): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 121, in descend for error in self.iter_errors(instance, schema): File "/usr/lib/python3.6/site-packages/jsonschema/validators.py", line 105, in iter_errors for error in errors: File "/usr/lib/python3.6/site-packages/jsonschema/_validators.py", line 163, in format validator.format_checker.check(instance, format) File "/usr/lib/python3.6/site-packages/jsonschema/_format.py", line 96, in check result = func(instance) File "/usr/lib/python3.6/site-packages/compose/config/validation.py", line 51, in format_ports split_port(instance) File "/usr/lib/python3.6/site-packages/docker/utils/ports.py", line 57, in split_port match = PORT_SPEC.match(port) TypeError: expected string or bytes-like object ``` |
This task depends upon
Closed by Felix Yan (felixonmars)
Thursday, 29 June 2017, 16:38 GMT
Reason for closing: Fixed
Additional comments about closing: 2.4.2-1
Thursday, 29 June 2017, 16:38 GMT
Reason for closing: Fixed
Additional comments about closing: 2.4.2-1
It looks like there is an issue when parsing the port formats.
This issue occured just after the package upgrade.
Downgrading to python-docker-2.3.0-1 is a workaround.
See the following issue for details: https://github.com/docker/docker-py/issues/1668
Looking forward to an update of the arch package
if hasattr(port, 'legacy_repr'):
# This is the worst hack, but it prevents a bug in Compose 1.14.0
# https://github.com/docker/docker-py/issues/1668
# TODO: remove once fixed in Compose stable
port = port.legacy_repr()
port = str(port)
You'll need to respect the indentation as it is python source code: https://github.com/docker/docker-py/pull/1671/files