docker.py/build: support binary files in --extra-files

Read the --extra-files in binary mode to avoid encoding errors.

Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2020-04-22 12:19:43 -04:00
parent dfae628459
commit af509738f8

View File

@ -56,15 +56,19 @@ class EngineEnum(enum.IntEnum):
USE_ENGINE = EngineEnum.AUTO
def _bytes_checksum(bytes):
"""Calculate a digest string unique to the text content"""
return hashlib.sha1(bytes).hexdigest()
def _text_checksum(text):
"""Calculate a digest string unique to the text content"""
return hashlib.sha1(text.encode('utf-8')).hexdigest()
return _bytes_checksum(text.encode('utf-8'))
def _read_dockerfile(path):
return open(path, 'rt', encoding='utf-8').read()
def _file_checksum(filename):
return _text_checksum(_read_dockerfile(filename))
return _bytes_checksum(open(filename, 'rb').read())
def _guess_engine_command():