Dockerfile | выполнение executor завершилось неудачей [/bin/sh -c poetry install –no-dev]: код выхода: 1

Вопрос или проблема

Я новичок в Docker, поэтому не уверен, как интерпретировать причины ошибок.

Poetry – это инструмент для управления зависимостями и упаковки в Python. Он позволяет вам объявлять библиотеки, от которых зависит ваш проект, и он будет управлять (устанавливать/обновлять) ими за вас.”

pip не работает, так как я не предоставил учетные данные. Как мне добавить свои учетные данные в свой файл url или pytest.conf?


Обновление: я создал файл pip.conf.

Теперь в docker build значительно больше успешных установок. Однако, все равно не удается.


pip.conf (PAT скрыт):

[global]
extra-index-url=https://<PAT>@pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple'

ls:

me@LAPTOP-G1DAPU88:~/.ssh/workers-python/workers/ontology_tagger$ ls
Dockerfile  README.md  azure-pipeline-ontology_tagger.yaml  ontology_tagger  poetry.lock  pyproject.toml  pytest.ini  wss-unified-agent.config  wss_agent.sh

pytest.ini:

[pytest]
markers =
    integration: создать конечную точку и протестировать возвращенные доверительные интервалы
    unit: исследовать результаты самой последней обученной модели на выбранных входных данных
testpaths = tests/

Проблема с учетными данными

danielbellio@LAPTOP-G1DAPU88:~/.ssh/workers-python/workers/ontology_tagger$ docker build --no-cache -t my_app -f /home/danielbellio/.ssh/workers-python/workers/ontology_tagger/Dockerfile .
[+] Строительство 1880.1s (16/23)                                                                                                                                                                               
 => [internal] загрузка определения сборки из Dockerfile                                                                                                                                                  0.0s
 => => передача dockerfile: 38B                                                                                                                                                                   0.0s
 => [internal] загрузка .dockerignore                                                                                                                                                                     0.0s
 => => передача контекста: 2B                                                                                                                                                                       0.0s
 => [internal] загрузка метаданных для docker.io/library/python:3.7-slim                                                                                                                                    8.8s
 => [auth] library/python:pull токен для registry-1.docker.io                                                                                                                                         0.0s
 => КЭШ [base 1/7] ИЗ docker.io/library/python:3.7-slim@sha256:798c7c77f4bba96b35de5fe9832b81084dcc4c1c52806d7976bf9233c7c3c4a6                                                                  0.0s
 => [internal] загрузка контекста сборки                                                                                                                                                                     0.1s 
 => => передача контекста: 2.13kB                                                                                                                                                                   0.0s
 => КЭШ https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py                                                                                                                0.0s
 => [base 2/7] RUN apt-get update -y     && apt-get -y --no-install-recommends install curl wget    && rm -rf /var/lib/apt/lists/*                                                                   14.7s
 => [base 3/7] WORKDIR /home/worker/python/ontology_tagger                                                                                                                                            0.1s 
 => [base 4/7] ADD https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py ./                                                                                                     0.1s 
 => [base 5/7] RUN python get-poetry.py && chmod +x /etc/poetry/bin/poetry                                                                                                                           59.4s 
 => [base 6/7] RUN --mount=type=cache,target=/root/.cache pip install twine keyring artifacts-keyring                                                                                                27.8s 
 => [base 7/7] RUN --mount=type=cache,target=/root/.cache apt update && apt install gcc -y                                                                                                           60.4s 
 => [build 1/6] COPY . .                                                                                                                                                                              0.1s 
 => [build 2/6] RUN poetry config experimental.new-installer false                                                                                                                                    3.0s 
 => ОШИБКА [build 3/6] RUN poetry install --no-dev                                                                                                                                                  1705.5s 
------                                                                                                                                                                                                     
 > [build 3/6] RUN poetry install --no-dev:                                                                                                                                                                
#16 1.980 Создание virtualenv ontology-tagger в /home/worker/python/ontology_tagger/.venv                                                                                                                 
#16 7.523 Установка зависимостей из файла блокировки                                                                                                                                                           
#16 13.64                                                                                                                                                                                                  
#16 13.64 Операции с пакетами: 199 установок, 0 обновлений, 1 удаление                                                                                                                                           
#16 13.64 
#16 13.64   - Удаление wheel (0.37.0)
#16 15.02   - Установка six (1.16.0)
#16 16.84   - Установка typing-extensions (3.10.0.0)
#16 17.93   - Установка zipp (3.5.0)
#16 19.00   - Установка certifi (2021.5.30)
#16 20.10   - Установка charset-normalizer (2.0.4)
#16 21.21   - Установка greenlet (1.1.1)
#16 23.46   - Установка idna (3.2)
#16 24.81   - Установка importlib-metadata (4.6.3)
#16 26.52   - Установка ipython-genutils (0.2.0)
#16 28.13   - Установка markupsafe (2.0.1)
#16 29.85   - Установка promise (2.3)
#16 32.66   - Установка pyasn1 (0.4.8)
#16 35.22   - Установка pycparser (2.20)
#16 36.56   - Установка pytz (2021.1)
#16 38.94   - Установка rx (1.6.1)
#16 40.94   - Установка urllib3 (1.26.6)
#16 42.25   - Установка attrs (21.2.0)
#16 43.99   - Установка cachetools (4.2.2)
#16 45.63   - Установка cffi (1.14.6)
#16 47.33   - Установка graphql-core (2.3.2)
#16 49.38   - Установка grpcio (1.39.0)
#16 58.20   - Установка heapdict (1.0.1)
#16 60.10   - Установка humanfriendly (9.2)
#16 61.95   - Установка jmespath (0.10.0)
#16 63.62   - Установка locket (0.2.1)
#16 65.39   - Установка mako (1.1.4)
#16 67.76   - Установка numpy (1.21.1)
#16 79.65   - Установка oauthlib (3.1.1)
#16 81.43   - Установка protobuf (3.17.3)
#16 84.52   - Установка pyasn1-modules (0.2.8)
#16 86.70   - Установка pyparsing (2.4.7)
#16 88.44   - Установка pyrsistent (0.18.0)
#16 90.19   - Установка python-dateutil (2.8.2)
#16 92.69   - Установка python-editor (1.0.4)
#16 95.69   - Установка pytzdata (2020.1)
#16 98.10   - Установка pyyaml (5.3.1)
#16 101.9   - Установка requests (2.26.0)
#16 103.1   - Установка rsa (4.7.2)
#16 104.7   - Установка sqlalchemy (1.4.22)
#16 109.0   - Установка toolz (0.11.1)
#16 110.9   - Установка traitlets (5.0.5)
#16 113.0   - Установка tzlocal (1.5.1)
#16 116.0   - Установка zope.event (4.5.0)
#16 117.6   - Установка zope.interface (5.4.0)
#16 120.6   - Установка alembic (1.4.1)
#16 124.2   - Установка aniso8601 (7.0.0)
#16 125.9   - Установка backports.entry-points-selectable (1.1.0)
#16 127.9   - Установка botocore (1.21.19)
#16 135.5   - Установка click (7.1.2)
#16 137.3   - Установка cloudpickle (1.6.0)
#16 138.9   - Установка coloredlogs (14.0)
#16 140.5   - Установка contextlib2 (21.6.0)
#16 142.2   - Установка croniter (1.0.15)
#16 144.1   - Установка dask (2.30.0)
#16 147.4   - Установка dill (0.3.4)
#16 149.2   - Установка distlib (0.3.2)
#16 151.5   - Установка docstring-parser (0.7.1)
#16 760.1   - Установка filelock (3.0.12)
#16 762.5   - Установка fsspec (2021.7.0)
#16 766.0   - Установка funcsigs (1.0.2)
#16 768.2   - Установка future (0.18.2)
#16 778.4   - Установка gevent (21.8.0)
#16 810.7   - Установка google-auth (1.34.0)
#16 813.7   - Установка graphql-relay (2.0.1)
#16 815.7   - Установка grpcio-health-checking (1.39.0)
#16 817.7   - Установка itsdangerous (1.1.0)
#16 821.3   - Установка jinja2 (2.11.3)
#16 824.1   - Установка jsonschema (3.2.0)
#16 826.4   - Установка jupyter-core (4.7.1)
#16 828.7   - Установка marshmallow (3.13.0)
#16 831.3   - Установка msgpack (1.0.2)
#16 834.3   - Установка multidict (5.1.0)
#16 839.0   - Установка mypy-extensions (0.4.3)
#16 841.2   - Установка packaging (20.9)
#16 843.7   - Установка pandas (1.1.4)
#16 895.7   - Установка partd (1.2.0)
#16 898.7   - Установка pendulum (1.4.4)
#16 914.4   - Установка pillow (8.3.1)
#16 947.3   - Установка platformdirs (2.2.0)
#16 949.7   - Установка psutil (5.8.0)
#16 952.9   - Установка requests-oauthlib (1.3.0)
#16 955.5   - Установка smmap (4.0.0)
#16 958.1   - Установка sortedcontainers (2.4.0)
#16 960.0   - Установка tabulate (0.8.9)
#16 962.5   - Установка tblib (1.7.0)
#16 965.8   - Установка toposort (1.6)
#16 969.3   - Установка tornado (6.1)
#16 973.7   - Установка tqdm (4.49.0)
#16 976.6   - Установка watchdog (2.1.3)
#16 979.4   - Установка webencodings (0.5.1)
#16 981.2   - Установка websocket-client (0.59.0)
#16 983.9   - Установка werkzeug (1.0.1)
#16 986.8   - Установка zict (2.0.0)
#16 989.2   - Установка absl-py (0.13.0)
#16 992.2   - Установка async-timeout (3.0.1)
#16 994.5   - Установка bleach (4.0.0)
#16 996.7   - Установка bokeh (2.3.3)
#16 1020.0   - Установка cached-property (1.5.2)
#16 1023.2   - Установка cfgv (3.3.0)
#16 1025.6   - Установка chardet (4.0.0)
#16 1028.7   - Установка colorama (0.4.4)
#16 1030.6   - Установка configparser (5.0.2)
#16 1032.8   - Установка cycler (0.10.0)
#16 1035.1   - Установка dagster (0.9.22.post0)
#16 1041.2   - Установка defusedxml (0.7.1)
#16 1043.7   - Установка distributed (2.30.1)
#16 1049.5   - Установка distro (1.6.0)
#16 1052.8   - Установка docker (5.0.0)
#16 1055.5   - Установка dockerpty (0.4.1)
#16 1059.3   - Установка docopt (0.6.2)
#16 1064.4   - Установка entrypoints (0.3)
#16 1067.1   - Установка flask (1.1.4)
#16 1069.8   - Установка gevent-websocket (0.10.1)
#16 1072.8   - Установка gitdb (4.0.7)
#16 1075.4   - Установка google-auth-oauthlib (0.4.5)
#16 1078.1   - Установка graphene (2.1.9)
#16 1081.4   - Установка graphql-server-core (1.2.0)
#16 1085.9   - Установка identify (2.2.13)
#16 1089.3   - Установка joblib (1.0.1)
#16 1092.6   - Установка kiwisolver (1.3.1)
#16 1095.8   - Установка markdown (3.3.4)
#16 1099.0   - Установка marshmallow-enum (1.5.1)
#16 1101.4   - Установка mistune (0.8.4)
#16 1104.0   - Установка multiprocess (0.70.12.2)
#16 1107.9   - Установка nbformat (5.1.3)
#16 1111.8   - Установка nodeenv (1.6.0)
#16 1114.9   - Установка pandocfilters (1.4.3)
#16 1121.0   - Установка pathspec (0.8.1)
#16 1123.2   - Установка plumbum (1.7.0)
#16 1125.3   - Установка pox (0.3.0)
#16 1127.4   - Установка ppft (1.6.6.4)
#16 1129.2   - Установка prometheus-client (0.11.0)
#16 1131.2   - Установка pydantic (1.8.2)
#16 1136.3   - Установка pygments (2.9.0)
#16 1139.9   - Установка pymongo (3.12.0)
#16 1143.5   - Установка python-dotenv (0.19.0)
#16 1145.5   - Установка pyyaml-include (1.2.post2)
#16 1147.6   - Установка regex (2020.11.13)
#16 1151.2   - Установка s3transfer (0.5.0)
#16 1153.2   - Установка stringcase (1.2.0)
#16 1157.5   - Установка tensorboard-data-server (0.6.1)
#16 1161.9   - Установка tensorboard-plugin-wit (1.8.0)
#16 1165.3   - Установка testpath (0.5.0)
#16 1167.8   - Установка texttable (1.6.4)
#16 1170.2   - Установка toml (0.10.2)
#16 1172.8   - Установка torch (1.7.1)
#16 1469.6   - Установка typing-inspect (0.7.1)
#16 1472.3   - Установка virtualenv (20.7.2)
#16 1478.0   - Установка yarl (1.6.3)
#16 1481.9   - Установка aiohttp (3.7.4.post0)
#16 1488.6   - Установка autologging (1.3.2)
#16 1491.0   - Установка boto3 (1.18.19)
#16 1495.9   - Установка copier (5.1.0)
#16 1498.8   - Установка cryptography (3.4.7)
#16 1502.4   - Установка dagster-dask (0.9.22.post0)
#16 1506.1   - Установка dagster-graphql (0.9.22.post0)
#16 1509.5   - Установка databricks-cli (0.15.0)
#16 1514.2   - Установка dataclasses-json (0.5.4)
#16 1517.4   - Установка docker-compose (1.29.2)
#16 1521.0   - Установка flask-cors (3.0.10)
#16 1523.4   - Установка flask-graphql (2.0.1)
#16 1527.9   - Установка flask-sockets (0.2.1)
#16 1530.5   - Установка gitpython (3.1.20)
#16 1533.5   - Установка google-pasta (0.2.0)
#16 1536.4   - Установка graphql-ws (0.3.1)
#16 1539.7   - Установка gunicorn (20.1.0)
#16 1543.7   - Установка huggingface-hub (0.0.2)
#16 1546.6   - Установка matplotlib (3.4.2)
#16 1557.1   - Установка minio (6.0.2)
#16 1560.1   - Установка mongoengine (0.20.0)
#16 1562.9   - Установка motor (2.5.0)
#16 1565.5   - Установка nbconvert (5.6.1)
#16 1569.7   - Установка pathos (0.2.8)
#16 1572.6   - Установка pre-commit (2.14.0)
#16 1576.3   - Установка prometheus-flask-exporter (0.18.2)
#16 1581.1   - Установка protobuf3-to-dict (0.1.5)
#16 1586.2   - Установка psycopg2-binary (2.9.1)
#16 1590.0   - Установка pyarrow (2.0.0)
#16 1603.1   - Установка querystring-parser (1.2.4)
#16 1607.8   - Установка sacremoses (0.0.45)
#16 1615.6   - Установка scipy (1.7.1)
#16 1634.3   - Установка smdebug-rulesconfig (1.0.1)
#16 1637.7   - Установка sqlparse (0.4.1)
#16 1640.8   - Установка tensorboard (2.6.0)
#16 1653.9   - Установка threadpoolctl (2.2.0)
#16 1657.0   - Установка tokenizers (0.10.3)
#16 1664.0   - Установка torchmetrics (0.3.2)
#16 1668.0   - Установка xxhash (2.0.2)
#16 1671.7   - Установка dagit (0.9.22.post0)
#16 1676.9   - Установка dagster-aws (0.9.22.post0)
#16 1680.8   - Установка dagster-pandas (0.9.22.post0)
#16 1685.5   - Установка dagster-postgres (0.9.22.post0)
#16 1689.3   - Установка datasets (1.4.1)
#16 1692.6   - Установка mlflow (1.15.0)
#16 1701.5   - Установка pwmf (0.1.3.1.dev1)
#16 1704.6 
#16 1704.6   EnvCommandError
#16 1704.6 
#16 1704.6   Команда ['/home/worker/python/ontology_tagger/.venv/bin/pip', 'install', '--no-deps', '--index-url', 'https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple', 'pwmf==0.1.3.1.dev1'] завершилась ошибкой с кодом возврата 2 и выводом: 
#16 1704.6   Поиск индексов: https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple
#16 1704.6   Пользователь для pkgs.dev.azure.com: ОШИБКА: Исключение:
#16 1704.6   Трассировка (последний вызов последний):
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", строка 216, в _main
#16 1704.6       статус = self.run(options, args)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", строка 182, в обертке
#16 1704.6       вернуть func(self, options, args)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/commands/install.py", строка 325, в run
#16 1704.6       reqs, check_supported_wheels=not options.target_dir
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", строка 183, в resolve
#16 1704.6       discovered_reqs.extend(self._resolve_one(requirement_set, req))
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", строка 388, в _resolve_one
#16 1704.6       abstract_dist = self._get_abstract_dist_for(req_to_install)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", строка 339, в _get_abstract_dist_for
#16 1704.6       self._populate_link(req)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", строка 305, в _populate_link
#16 1704.6       req.link = self._find_requirement_link(req)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", строка 270, в _find_requirement_link
#16 1704.6       best_candidate = self.finder.find_requirement(req, upgrade)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", строка 899, в find_requirement
#16 1704.6       req.name, specifier=req.specifier, hashes=hashes,
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", строка 881, в find_best_candidate
#16 1704.6       кандидаты = self.find_all_candidates(project_name)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", строка 826, в find_all_candidates
#16 1704.6       project_url, link_evaluator=link_evaluator,
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", строка 790, в process_project_url
#16 1704.6       html_page = self._link_collector.fetch_page(project_url)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", строка 643, в fetch_page
#16 1704.6       вернуть _get_html_page(location, session=self.session)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", строка 455, в _get_html_page
#16 1704.6       resp = _get_html_response(url, session=session)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", строка 169, в _get_html_response
#16 1704.6       "Cache-Control": "max-age=0",
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", строка 543, в get
#16 1704.6       вернуть self.request('GET', url, **kwargs)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/session.py", строка 421, в request
#16 1704.6       вернуть super(PipSession, self).request(method, url, *args, **kwargs)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", строка 530, в request
#16 1704.6       r = dispatch_hook('response', hooks, r, **kwargs)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/hooks.py", строка 31, в dispatch_hook
#16 1704.6       _hook_data = hook(hook_data, **kwargs)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", строка 256, в handle_401
#16 1704.6       username, password, save = self._prompt_for_password(parsed.netloc)
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", строка 226, в _prompt_for_password
#16 1704.6       username = ask_input("Пользователь для {}: ".format(netloc))
#16 1704.6     Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", строка 259, в ask_input
#16 1704.6       return input(message)
#16 1704.6   EOFError: EOF при чтении строки
#16 1704.6   ПРЕДУПРЕЖДЕНИЕ: Вы используете версию pip 20.2.2; однако доступна версия 21.2.4.
#16 1704.6   Вы должны рассмотреть возможность обновления через команду '/home/worker/python/ontology_tagger/.venv/bin/python -m pip install --upgrade pip'.
#16 1704.6   
#16 1704.6 
#16 1704.6   в /etc/poetry/lib/poetry/utils/env.py:1074 в _run
#16 1704.8       1070│                 output = subprocess.check_output(
#16 1704.8       1071│                     cmd, stderr=subprocess.STDOUT, **kwargs
#16 1704.8       1072│                 )
#16 1704.8       1073│         кроме CalledProcessError как e:
#16 1704.8     → 1074│             raise EnvCommandError(e, input=input_)
#16 1704.8       1075│ 
#16 1704.8       1076│         вернуть decode(output)
#16 1704.8       1077│ 
#16 1704.9       1078│     def execute(self, bin, *args, **kwargs):
------
исполнитель завершил работу [/bin/sh -c poetry install --no-dev]: код выхода: 1

Dockerfile (строки 5–7):

#https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md
#требуется установить DOCKER_BUILDKIT=1

FROM python:3.7-slim as base
RUN apt-get update -y \
    && apt-get -y --no-install-recommends install curl wget\
    && rm -rf /var/lib/apt/lists/* 
ENV ROOT /home/worker/python/ontology_tagger
WORKDIR $ROOT

ARG ATLASSIAN_TOKEN
ARG POETRY_HTTP_BASIC_AZURE_PASSWORD
ARG ACCESS_KEY
ENV AWS_ACCESS_KEY_ID=$ACCESS_KEY
ARG SECRET_KEY
ENV AWS_SECRET_ACCESS_KEY=$SECRET_KEY
ARG REPO
ENV REPO_URL=$REPO
# Скопируйте/сделайте символическую ссылку на файл pypic в контексте докера перед запуском сборки докера
ENV PYPIRC_PATH=$ROOT/.pypirc

ENV \
    PYTHONFAULTHANDLER=1 \
    POETRY_VERSION=1.1.4 \
    POETRY_HOME=/etc/poetry \
    XDG_CACHE_HOME=/home/worker/.cache \
    POETRY_VIRTUALENVS_IN_PROJECT=true \
    MPLCONFIGDIR=/home/worker/matplotlib \
    PATH=/home/worker/python/ontology_tagger/.venv/bin:/usr/local/bin:/etc/poetry/bin:$PATH

# Системные зависимости:
ADD https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py ./
RUN python get-poetry.py && chmod +x /etc/poetry/bin/poetry
# Копируйте только зависимости, чтобы кэшировать их в слое докера
RUN --mount=type=cache,target=/root/.cache pip install twine keyring artifacts-keyring
RUN --mount=type=cache,target=/root/.cache apt update && apt install gcc -y

FROM base as ws
ARG WS_APIKEY
ARG WS_PROJECTVERSION=
ARG WS_PROJECTNAME=workers-python-ontology_tagger
ARG WS_PRODUCTNAME=HALO
COPY --chown=worker:worker . .
RUN --mount=type=cache,uid=1000,target=/home/worker/.cache poetry install --no-dev
COPY --from=openjdk:15-slim-buster /usr/local/openjdk-15 /usr/local/openjdk-15
ENV JAVA_HOME /usr/local/openjdk-15
ENV PATH $JAVA_HOME/bin:$PATH
RUN --mount=type=cache,uid=1000,target=/home/worker/.cache ./wss_agent.sh

FROM base as test
COPY . .
RUN poetry config experimental.new-installer false
RUN poetry install
RUN cd ontology_tagger && poetry run invoke deploy
# RUN sphinx-build -b confluence -Q docs/source docs/build -E -a -D confluence_server_pass=$ATLASSIAN_TOKEN

FROM base as package
COPY . .
RUN poetry build
RUN python -m pip install --upgrade pip && \
pip install twine keyring artifacts-keyring && \
twine upload -r $REPO_URL --config-file $PYPIRC_PATH dist/* --skip-existing

FROM base as build
COPY . .
RUN poetry config experimental.new-installer false
RUN poetry install --no-dev
RUN pip3 --no-cache-dir install --upgrade awscli
RUN aws s3 cp s3://iotahoe-datascience/python_workers/dbpedia/output/ontologytagger-2021-05-23-20-49-40-099/output/model.tar.gz $ROOT/ontology_tagger
RUN mkdir $ROOT/ontology_tagger/bert-base-cased && cd $ROOT/ontology_tagger/bert-base-cased && \
wget https://huggingface.co/bert-base-cased/resolve/main/config.json && \
wget https://huggingface.co/bert-base-cased/resolve/main/tokenizer.json && \
wget https://huggingface.co/bert-base-cased/resolve/main/tokenizer_config.json 

FROM python:3.7-slim as production
ENV  ROOT=/home/worker/python/ontology_tagger \
     VIRTUAL_ENV=/home/worker/python/ontology_tagger/.venv\
     PATH=/home/worker/python/ontology_tagger/.venv/bin:/home/worker/python/ontology_tagger:$PATH
COPY --from=build /home/worker/python/ontology_tagger/pyproject.toml /home/worker/python/
COPY --from=build /home/worker/python/ontology_tagger/.venv /home/worker/python/ontology_tagger/.venv
COPY --from=build /home/worker/python/ontology_tagger/ontology_tagger /home/worker/python/ontology_tagger
WORKDIR $ROOT
ENV PYTHONPATH=$ROOT:/home/worker/python/
# аргументы в формате mongodb://user:pass@mongodb:27017/ops?authSource=admin,ops,jobs,pipelineId-ce6b9dad-0fa1-42f7-a04d-b54d1468dc7f:ontology_tagger_worker
ENTRYPOINT [ "primary_worker", "--mongo" ]

Первая ошибка исправлена, как вы выяснили, путем настройки системных часов.

Вторая ошибка связана с тем, что pip запрашивает пароль.

Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/**auth.py", строка 226, в _prompt_for_password**

username = ask_input("Пользователь для {}: ".format(netloc))
Файл "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", **строка 259, в ask_input**

Так что это означает, что вам нужно будет добавить эти учетные данные в ваш url или pip.conf.

#16 957.2   Команда ['/home/worker/python/ontology_tagger/.venv/bin/pip', 'install', '--no-deps', '--index-url', 'https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple', 'pwmf==0.1.3.1.dev1'] завершилась ошибкой с кодом возврата 2 и выводом: 

Ответ или решение

Ошибка, которую вы наблюдаете в процессе сборки Docker-контейнера, указывает на проблемы с установкой зависимостей проекта Python с помощью Poetry. В частности, сообщение «executor failed running [/bin/sh -c poetry install –no-dev]: exit code: 1» подразумевает, что во время выполнения команды poetry install --no-dev происходит сбой. Давайте разбираем проблему по шагам, чтобы понять, где могут быть ошибки, и как их устранить.

1. Ошибка аутентификации

Из журналов, которые вы предоставили, видно, что pip запрашивает учетные данные для доступа к вашему частному репозиторию на Azure. Система сообщает следующее:

User for pkgs.dev.azure.com: ERROR: Exception:
...
username = ask_input("User for {}: ".format(netloc))

Это говорит о том, что pip не может получить доступ к указанному индексу, потому что не знает, какие учетные данные использовать. Как вы уже заметили, чтобы решить эту проблему, вам нужно добавить ваши учетные данные в файл настроек pip (pip.conf) или в URL-адрес, который вы используете.

2. Файл pip.conf

Ваш файл pip.conf выглядит следующим образом:

[global]
extra-index-url=https://<PAT>@pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple

В этом файле необходимо заменить <PAT> на ваш личный токен доступа (Personal Access Token), который вы сможете получить в Azure DevOps. Учтите, что токен доступа нужно хранить в безопасности, так как он предоставит доступ к вашему репозиторию.

3. Упрощение URL

Если вы не хотите добавлять токен доступа в конфигурации, вы можете включить его непосредственно в URL. Однако этот метод менее безопасен:

pip install --index-url=https://username:PAT@pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple <package_name>

Здесь username также должен быть вашим именем пользователя. Но более безопасным способом будет использование файла настроек.

4. Проверьте правильность настройки Poetry

Убедитесь, что Poetry правильно сконfigурирован для работы с вашими репозиториями. Вы можете использовать следующую команду для добавления вашего репозитория в качестве источника:

poetry config repositories.my-private-repo https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple

Затем можете указать учетные данные для доступа:

poetry config http-basic.my-private-repo username PAT

5. Ваша сборка Docker

В вашем Dockerfile были добавлены аргументы, такие как ARG ATLASSIAN_TOKEN, ARG POETRY_HTTP_BASIC_AZURE_PASSWORD и т. д. Убедитесь, что вы правильно передаете эти аргументы при сборке контейнера, например:

docker build --no-cache --build-arg ATLASSIAN_TOKEN=<your_token> --build-arg POETRY_HTTP_BASIC_AZURE_PASSWORD=<your_password> -t my_app .

6. Дополнительные рекомендации

  • Убедитесь, что у вас актуальная версия pip, поскольку использование старых версий может привести к неустойчивому поведению.
  • Запуск pip install --upgrade pip в вашем образе Docker может помочь избежать таких ошибок.
  • Проверяйте, не блокирует ли что-то доступ к вашим индексам (например, корпоративные файрволы или прокси).

Заключение

Разрешив проблемы с аутентификацией и удостоверившись, что настройки Poetry выполнены правильно, вы сможете избежать ошибок, возникающих при установке зависимостей в вашем Docker-образе. Если после внесения всех предложенных изменений проблемы сохраняются, рассмотрите возможность проверки логов более подробно или обдумывания структуры проекта и зависимости.

Оцените материал
Добавить комментарий

Капча загружается...