来自github私有仓库的pip install软件包,在docker中具有部署密钥

阿拉比内利

我正在尝试构建一个Docker容器,该容器应该从requirements.txt文件中安装一系列python软件包。条目之一是托管在私有GitHub存储库上的python软件包。要安装它,我创建了一对SSH密钥,并将公共密钥作为Deploy Key添加到GitHub存储库。

但是,在构建容器时,出现此错误:

ERROR: Command errored out with exit status 128: git clone -q 'ssh://****@github.com:organization/my-package' /tmp/pip-install-e81w4wri/my-package Check the logs for full command output.

我试图通过更改docker文件的pip install命令来调试错误RUN git clone [email protected]:organization/my-package.git,它的工作正常。

此错误是什么意思,我该如何解决?我可以克隆它并使用专用命令安装它,但是如果可能的话,我想将所有需求都放在一个地方。谢谢!

这是我正在使用的Dockerfile:

FROM joyzoursky/python-chromedriver:3.7-alpine3.8 as base

FROM base as builder

RUN echo "http://dl-8.alpinelinux.org/alpine/edge/community" >> /etc/apk/repositories
RUN apk --no-cache --update-cache add bash gcc gfortran build-base git wget freetype-dev libpng-dev openblas-dev openssh-client
RUN ln -s /usr/include/locale.h /usr/include/xlocale.h

# copy requirements
RUN mkdir /install
WORKDIR /install
COPY ./requirements.txt /var/www/requirements.txt

### GITHUB SSH KEY ###
COPY ./keys/deploy_key_private .
RUN mkdir /root/.ssh && mv deploy_key_private /root/.ssh/id_rsa
RUN eval $(ssh-agent) && \
    ssh-add /root/.ssh/id_rsa && \
    ssh-keyscan -H github.com >> /etc/ssh/ssh_known_hosts

RUN pip install --upgrade pip && pip install --prefix=/install -r /var/www/requirements.txt --log logs.txt

FROM base
COPY --from=builder /install /usr/local
# KEEP ON BUILDING THE CONTAINER

该软件包在中requirements.txt列为git+ssh://[email protected]:organization/my-package@master#egg=my_package

如果相关,这是pip的追溯:

Exception information:
2020-07-30T11:56:55,329 Traceback (most recent call last):
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/base_command.py", line 216, in _main
2020-07-30T11:56:55,329     status = self.run(options, args)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/cli/req_command.py", line 182, in wrapper
2020-07-30T11:56:55,329     return func(self, options, args)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/commands/install.py", line 325, in run
2020-07-30T11:56:55,329     reqs, check_supported_wheels=not options.target_dir
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 183, in resolve
2020-07-30T11:56:55,329     discovered_reqs.extend(self._resolve_one(requirement_set, req))
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 388, in _resolve_one
2020-07-30T11:56:55,329     abstract_dist = self._get_abstract_dist_for(req_to_install)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/resolution/legacy/resolver.py", line 340, in _get_abstract_dist_for
2020-07-30T11:56:55,329     abstract_dist = self.preparer.prepare_linked_requirement(req)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 469, in prepare_linked_requirement
2020-07-30T11:56:55,329     hashes=self._get_linked_req_hashes(req)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 239, in unpack_url
2020-07-30T11:56:55,329     unpack_vcs_link(link, location)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/operations/prepare.py", line 99, in unpack_vcs_link
2020-07-30T11:56:55,329     vcs_backend.unpack(location, url=hide_url(link.url))
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/vcs/versioncontrol.py", line 733, in unpack
2020-07-30T11:56:55,329     self.obtain(location, url=url)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/vcs/versioncontrol.py", line 641, in obtain
2020-07-30T11:56:55,329     self.fetch_new(dest, url, rev_options)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/vcs/git.py", line 230, in fetch_new
2020-07-30T11:56:55,329     self.run_command(make_command('clone', '-q', url, dest))
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/vcs/versioncontrol.py", line 774, in run_command
2020-07-30T11:56:55,329     log_failed_cmd=log_failed_cmd)
2020-07-30T11:56:55,329   File "/usr/local/lib/python3.7/site-packages/pip/_internal/vcs/versioncontrol.py", line 166, in call_subprocess
2020-07-30T11:56:55,329     raise SubProcessError(exc_msg)
2020-07-30T11:56:55,329 pip._internal.exceptions.SubProcessError: Command errored out with exit status 128: git clone -q 'ssh://****@github.com:organization/my-package' /tmp/pip-install-e81w4wri/my-package Check the logs for full command output.

[email protected]:organization/my-package.git是有效的SSH URL。ssh://[email protected]:organization/my-package.git不是。ssh://[email protected]/organization/my-package.git将会。

由于在这里,你可以添加GIT_SSH_COMMAND='ssh -v' pip install ...,看看到底是什么要去。

您可能需要:

git config --global url."ssh://[email protected]/".insteadOf ssh://[email protected]:

OP arabinelli报告中的意见必须使用以下行requirements.txt

git+ssh://[email protected]/my-organization/my-repo-name@master#egg=my_package_dir

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

github 克隆私有仓库

嵌入GitHub私有仓库中的图片

无法推送到 github 私有仓库

pip从私有仓库安装软件包,但从PyPi依赖代理后面安装软件包

将github仓库克隆为私有gitlab仓库

在docker的构建阶段内使用github私有仓库部署密钥进行npm安装

pip install via requirements.txt 指定直接 GitHub 私有仓库 + 分支名称错误,退出状态为 128

Docker:如何使用ssh访问私有的github仓库?

是否可以使用pip从私有GitHub存储库安装软件包?

在GitHub上进行私有仓库有任何优势吗?

R-curl Github API访问私有仓库

我可以从私有github仓库公开发布吗?

如何在sls部署期间安装私有npm github软件包

软件包中的“ del”具有某种记忆

如何“ pip install”具有非Python依赖项的软件包?

部署具有所有软件包依赖关系的Python Cloud Function

.npmrc的Docker和私有软件包

无法更新或安装软件包:已添加具有相同密钥的项目

为什么ubuntu开源软件包具有gpg密钥?

从带有私有apt仓库的特定发行版安装软件包?

从没有个人访问令牌的 github 私有仓库安装包

如何为具有私有git子模块的私有仓库设置GitHub Actions CI服务?

来自同一个git仓库的具有冲突功能的货物构建软件包?

GitHub Package Registry中的公共和私有软件包

通过Git对部署进行完全控制,以Github私有仓库为主

列出安装在virtualenv中的软件包(具有相应版本),而无需使用pip

获取在virtualenv中安装的所有软件包的pip install命令

没有合作者提交到GitHub私有仓库中

在gitlab管道中安装私有npm软件包