Dockerfile&Poethy |执行器无法运行[/bin/sh c poethy install nodev]:退出代码:1

2024-04-25 19:42:34 发布

您现在位置:Python中文网/ 问答频道 /正文

背景

sudo date -s "$(wget -qSO- --max-redirect=0 google.com 2>&1 | grep Date: | cut -d' ' -f5-8)Z"
sudo apt get
  • 然后pip失败了,因为我没有通过提供Azure DevOps下载的凭据url。 解决方法:创建一个Personal Access Token并将其放入新建立的pytest.conf文件中

现在,docker build命令的安装要成功得多。然而,它仍然失败

我在堆栈溢出上找不到对此错误的任何引用;因此这篇文章

Poetry


更新:

已创建~/.netrc(已删除):

machine pkgs.dev.azure.com
    username foo
    password bar
    save yes

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  ontology_tagger.egg-info  pip.conf  poetry.lock  pyproject.toml  pytest.ini  wss-unified-agent.config  wss_agent.sh

pytest.ini

[pytest]
markers =
    integration: create endpoint and test returned confidence intervals
    unit: interrogate results of most recent trained model on select inputs
testpaths = tests/

凭证问题

错误:

:~/.ssh/workers-python/workers/ontology_tagger$ docker build --no-cache -t my_app -f /home/danielbellio/.ssh/workers-python/workers/ontology_tagger/Dockerfile .
[+] Building 1235.3s (16/23)                                                                                                                                                                               
 => [internal] load build definition from Dockerfile                                                                                                                                                  0.0s
 => => transferring dockerfile: 38B                                                                                                                                                                   0.0s
 => [internal] load .dockerignore                                                                                                                                                                     0.0s
 => => transferring context: 2B                                                                                                                                                                       0.0s
 => [internal] load metadata for docker.io/library/python:3.7-slim                                                                                                                                    6.9s
 => [auth] library/python:pull token for registry-1.docker.io                                                                                                                                         0.0s
 => [internal] load build context                                                                                                                                                                     0.1s
 => => transferring context: 4.48kB                                                                                                                                                                   0.0s
 => CACHED https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py                                                                                                                0.0s
 => CACHED [production 1/5] FROM docker.io/library/python:3.7-slim@sha256:798c7c77f4bba96b35de5fe9832b81084dcc4c1c52806d7976bf9233c7c3c4a6                                                            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/*                                                                   15.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                                                                                                                           32.3s 
 => [base 6/7] RUN --mount=type=cache,target=/root/.cache pip install twine keyring artifacts-keyring                                                                                                31.7s 
 => [base 7/7] RUN --mount=type=cache,target=/root/.cache apt update && apt install gcc -y                                                                                                           70.9s 
 => [build 1/6] COPY . .                                                                                                                                                                              0.1s 
 => [build 2/6] RUN poetry config experimental.new-installer false                                                                                                                                    3.3s 
 => ERROR [build 3/6] RUN poetry install --no-dev                                                                                                                                                  1073.6s 
------                                                                                                                                                                                                     
 > [build 3/6] RUN poetry install --no-dev:                                                                                                                                                                
#16 2.044 Creating virtualenv ontology-tagger in /home/worker/python/ontology_tagger/.venv                                                                                                                 
#16 7.182 Installing dependencies from lock file                                                                                                                                                           
#16 13.06                                                                                                                                                                                                  
#16 13.06 Package operations: 199 installs, 0 updates, 1 removal                                                                                                                                           
#16 13.06 
#16 13.06   - Removing wheel (0.37.0)
#16 14.42   - Installing six (1.16.0)
...
#16 1070.5   - Installing pwmf (0.1.3.1.dev1)
#16 1072.9 
#16 1072.9   EnvCommandError
#16 1072.9 
#16 1072.9   Command ['/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'] errored with the following return code 2, and output: 
#16 1072.9   Looking in indexes: https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple
#16 1072.9   User for pkgs.dev.azure.com: ERROR: Exception:
#16 1072.9   Traceback (most recent call last):
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
#16 1072.9       status = self.run(options, args)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
#16 1072.9       return func(self, options, args)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 325, in run
#16 1072.9       reqs, check_supported_wheels=not options.target_dir
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
#16 1072.9       discovered_reqs.extend(self._resolve_one(requirement_set, req))
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
#16 1072.9       abstract_dist = self._get_abstract_dist_for(req_to_install)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 339, in _get_abstract_dist_for
#16 1072.9       self._populate_link(req)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 305, in _populate_link
#16 1072.9       req.link = self._find_requirement_link(req)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 270, in _find_requirement_link
#16 1072.9       best_candidate = self.finder.find_requirement(req, upgrade)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", line 899, in find_requirement
#16 1072.9       req.name, specifier=req.specifier, hashes=hashes,
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", line 881, in find_best_candidate
#16 1072.9       candidates = self.find_all_candidates(project_name)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", line 826, in find_all_candidates
#16 1072.9       project_url, link_evaluator=link_evaluator,
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/package_finder.py", line 790, in process_project_url
#16 1072.9       html_page = self._link_collector.fetch_page(project_url)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", line 643, in fetch_page
#16 1072.9       return _get_html_page(location, session=self.session)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", line 455, in _get_html_page
#16 1072.9       resp = _get_html_response(url, session=session)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/index/collector.py", line 169, in _get_html_response
#16 1072.9       "Cache-Control": "max-age=0",
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 543, in get
#16 1072.9       return self.request('GET', url, **kwargs)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/session.py", line 421, in request
#16 1072.9       return super(PipSession, self).request(method, url, *args, **kwargs)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 530, in request
#16 1072.9       resp = self.send(prep, **send_kwargs)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/sessions.py", line 650, in send
#16 1072.9       r = dispatch_hook('response', hooks, r, **kwargs)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_vendor/requests/hooks.py", line 31, in dispatch_hook
#16 1072.9       _hook_data = hook(hook_data, **kwargs)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", line 256, in handle_401
#16 1072.9       username, password, save = self._prompt_for_password(parsed.netloc)
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", line 226, in _prompt_for_password
#16 1072.9       username = ask_input("User for {}: ".format(netloc))
#16 1072.9     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 259, in ask_input
#16 1072.9       return input(message)
#16 1072.9   EOFError: EOF when reading a line
#16 1072.9   WARNING: You are using pip version 20.2.2; however, version 21.2.4 is available.
#16 1072.9   You should consider upgrading via the '/home/worker/python/ontology_tagger/.venv/bin/python -m pip install --upgrade pip' command.
#16 1072.9   
#16 1072.9 
#16 1072.9   at /etc/poetry/lib/poetry/utils/env.py:1074 in _run
#16 1073.0       1070│                 output = subprocess.check_output(
#16 1073.0       1071│                     cmd, stderr=subprocess.STDOUT, **kwargs
#16 1073.0       1072│                 )
#16 1073.0       1073│         except CalledProcessError as e:
#16 1073.0     → 1074│             raise EnvCommandError(e, input=input_)
#16 1073.0       1075│ 
#16 1073.0       1076│         return decode(output)
#16 1073.0       1077│ 
#16 1073.0       1078│     def execute(self, bin, *args, **kwargs):
------
executor failed running [/bin/sh -c poetry install --no-dev]: exit code: 1

Dockerfile(第5行至第7行):

#https://github.com/moby/buildkit/blob/master/frontend/dockerfile/docs/syntax.md
#require set 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
# Copy/symlink pypic file to the docker context before running docker build
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

# System deps:
ADD https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py ./
RUN python get-poetry.py && chmod +x /etc/poetry/bin/poetry
# Copy only requirements to cache them in docker layer
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/
# args in format mongodb://user:pass@mongodb:27017/ops?authSource=admin,ops,jobs,pipelineId-ce6b9dad-0fa1-42f7-a04d-b54d1468dc7f:ontology_tagger_worker
ENTRYPOINT [ "primary_worker", "--mongo" ]

Tags: pipruninpyhomepoetryvenvlib
1条回答
网友
1楼 · 发布于 2024-04-25 19:42:34

追溯

#16 1704.6   Looking in indexes: https://pkgs.dev.azure.com/iotahoe/Halo/_packaging/private-sources/pypi/simple
#16 1704.6   User for pkgs.dev.azure.com:
....
#16 1704.6     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", line 256, in handle_401
#16 1704.6       username, password, save = self._prompt_for_password(parsed.netloc)
#16 1704.6     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/network/auth.py", line 226, in _prompt_for_password
#16 1704.6       username = ask_input("User for {}: ".format(netloc))
#16 1704.6     File "/home/worker/python/ontology_tagger/.venv/lib/python3.7/site-packages/pip/_internal/utils/misc.py", line 259, in ask_input
#16 1704.6       return input(message)

暗示Pip正试图为pkgs.dev.azure.com请求密码-也许不管<PAT>是什么,都不会为Pip剪切密码

查看回溯中的行号,这来自一个^{}函数,因此可能需要再次检查这些凭证是否确实适用于包注册表

否则,您可能需要设置一个~/.netrc文件(可能使用Docker build secrets?),如https://stackoverflow.com/a/55978589/51685中所述,供Pip读取这些凭证

相关问题 更多 >