Не удалось создать контейнер kubespray из файла настройки

#pip #ansible #dockerfile #kubespray

Вопрос:

Я клонировал репозиторий kubespray и пытаюсь создать контейнер из файла Dockerfile для запуска своих развертываний. Он проходит шаги 1-5 файла Dockerfile без проблем, но каждый раз терпит неудачу на шаге 6 при загрузке базового tar ansible. Вот результат:

 docker build --no-cache --force-rm=true --tag=kubespray-builder .

 => ERROR [6/7] RUN /usr/bin/python3 -m pip install pip -U     amp;amp; /usr/bin/python3 -m pip install -r tests/requirements.txt     amp;amp; python3 -m   29.1s
------
 > [6/7] RUN /usr/bin/python3 -m pip install pip -U     amp;amp; /usr/bin/python3 -m pip install -r tests/requirements.txt     amp;amp; python3 -m pip install -r requirements.txt     amp;amp; update-alternatives --install /usr/bin/python python /usr/bin/python3 1:
#11 1.615 Collecting pip
#11 1.988   Downloading https://files.pythonhosted.org/packages/ca/bf/4133a0e05eac641ec270bbcef30512b5ad307d7838adb994acd652cc30e3/pip-21.2.3-py3-none-any.whl (1.6MB)
#11 2.965 Installing collected packages: pip
#11 2.965   Found existing installation: pip 9.0.1
#11 2.972     Not uninstalling pip at /usr/lib/python3/dist-packages, outside environment /usr
#11 3.788 Successfully installed pip-21.2.3
#11 4.623 Collecting ansible==3.4.0
#11 4.771   Downloading ansible-3.4.0.tar.gz (31.9 MB)
#11 26.29 Collecting ansible-base==2.10.11
#11 26.31   Downloading ansible-base-2.10.11.tar.gz (6.0 MB)
#11 27.38 ERROR: Exception:
#11 27.38 Traceback (most recent call last):
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/cli/base_command.py", line 173, in _main
#11 27.38     status = self.run(options, args)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/cli/req_command.py", line 203, in wrapper
#11 27.38     return func(self, options, args)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/commands/install.py", line 316, in run
#11 27.38     reqs, check_supported_wheels=not options.target_dir
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
#11 27.38     collected.requirements, max_rounds=try_to_avoid_resolution_too_deep
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 472, in resolve
#11 27.38     state = resolution.resolve(requirements, max_rounds=max_rounds)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 341, in resolve
#11 27.38     self._add_to_criteria(self.state.criteria, r, parent=None)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/resolvelib/resolvers.py", line 172, in _add_to_criteria
#11 27.38     if not criterion.candidates:
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_vendor/resolvelib/structs.py", line 151, in __bool__
#11 27.38     return bool(self._sequence)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 140, in __bool__
#11 27.38     return any(self)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 128, in <genexpr>
#11 27.38     return (c for c in iterator if id(c) not in self._incompatible_ids)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/found_candidates.py", line 32, in _iter_built
#11 27.38     candidate = func()
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/factory.py", line 209, in _make_candidate_from_link
#11 27.38     version=version,
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 301, in __init__
#11 27.38     version=version,
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 156, in __init__
#11 27.38     self.dist = self._prepare()
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 227, in _prepare
#11 27.38     dist = self._prepare_distribution()
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/resolution/resolvelib/candidates.py", line 306, in _prepare_distribution
#11 27.38     self._ireq, parallel_builds=True
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/operations/prepare.py", line 508, in prepare_linked_requirement
#11 27.38     return self._prepare_linked_requirement(req, parallel_builds)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/operations/prepare.py", line 552, in _prepare_linked_requirement
#11 27.38     self.download_dir, hashes
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/operations/prepare.py", line 249, in unpack_url
#11 27.38     unpack_file(file.path, location, file.content_type)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/unpacking.py", line 256, in unpack_file
#11 27.38     untar_file(filename, location)
#11 27.38   File "/usr/local/lib/python3.6/dist-packages/pip/_internal/utils/unpacking.py", line 226, in untar_file
#11 27.38     with open(path, "wb") as destfp:
#11 27.38 UnicodeEncodeError: 'ascii' codec can't encode character 'xe9' in position 117: ordinal not in range(128)
------
executor failed running [/bin/sh -c /usr/bin/python3 -m pip install pip -U     amp;amp; /usr/bin/python3 -m pip install -r tests/requirements.txt     amp;amp; python3 -m pip install -r requirements.txt     amp;amp; update-alternatives --install /usr/bin/python python /usr/bin/python3 1]: exit code: 2
 

Любая помощь приветствуется, я ранее не сталкивался с этой проблемой и много раз создавал этот контейнер с помощью предыдущей версии kubespray.

Комментарии:

1. Я бы предположил, что это древняя версия pip , но прагматически это не вопрос программирования и, следовательно, относится к SuperUser.com за помощью в установке программного обеспечения

2. Смотрите эту ошибку , которая все еще открыта, и предложенный план работы в комментарии . Я успешно создал изображение, внеся следующее изменение, которое я уже предложил в качестве пиара (которое может быть принято, если мне удастся приручить бота…)

3. Спасибо @Zeitounator, добавив, что файл настройки сработал.

4. @JoshSchubert Просто для того, чтобы сообщить вам, что PR одобрен и проходит испытания. Надеюсь, это должно быть в какой-то следующей версии.

5. @Zeitounator Спасибо за пиар, теперь он одобрен, lgtm-отредактирован и объединен