使用 github 操作从 docker build 内的 git repo 安装 PIp

2024-03-16

我正在致力于将通用模块分离到我们 github 组织的专用存储库中。使用 git repo 中的 pip installDockerfile安装组织内部开发的共享模块

RUN pip3 install -r requirements.txt

其中 git repo 依赖项引用如下

git+https://github.com/org/repo.git@master

面临的问题是我无法做到pip3 install当作为 github 操作运行时,针对组织私有存储库进行身份验证pip3 install inside Dockerfile。我希望避免为其中一位开发人员创建私有访问令牌 (PAT),因为希望与用户无关,并且不维护离开团队成员的令牌。尝试使用${{ secrets.GITHUB_TOKEN }}但通过更深入的阅读,我们意识到该令牌可以访问启动 github 操作的存储库(link https://docs.github.com/en/actions/security-guides/automatic-token-authentication#about-the-github_token-secret)

令牌的权限仅限于包含您的工作流程的存储库

有没有办法制作pip3 install在没有 PAT 的情况下在 github actions 中工作?

在多次迭代之一中出错:

Collecting git+https://****@github.com/org/repo.git@master (from -r requirements.txt (line 17))
  Cloning https://****@github.com/org/repo.git (to revision master) to /tmp/pip-req-build-mnge3zvd
  Running command git clone -q 'https://****@github.com/org/repo.git' /tmp/pip-req-build-mnge3zvd
  fatal: could not read Password for 'https://${GITHUB_TOKEN}@github.com': No such device or address
WARNING: Discarding git+https://****@github.com/org/repo.git@master. Command errored out with exit status 128: git clone -q 'https://****@github.com/org/repo.git' /tmp/pip-req-build-mnge3zvd Check the logs for full command output.
ERROR: Command errored out with exit status 128: git clone -q 'https://****@github.com/org/repo.git' /tmp/pip-req-build-mnge3zvd Check the logs for full command output.

我建议你像这样使用 ssh:

在你的 dockerfile 中:

RUN --mount=type=ssh,id=default pip install -r requirements.txt

在您的requirements.txt中,更改为

git+ssh://[email protected] /cdn-cgi/l/email-protection/org/repo.git@master

在存储库设置/操作/秘密中准备与您的 github 帐户关联的 ssh 私钥,名称为SSH_KEY(最好使用专用的 ssh 密钥)

在定义 yaml 的操作中,创建一个步骤

- name: Prepare Key
  uses: webfactory/ssh-a[email protected] /cdn-cgi/l/email-protection
  with:
    ssh-private-key: ${{ secrets.SSH_KEY }}

这将导出一个环境变量SSH_AUTH_SOCK供以后使用

下一步操作,使用SSH_AUTH_SOCK

- name: Build and push
    id: docker_build
    uses: docker/build-push-action@v2
    with:
      ssh: |
        default=${{ env.SSH_AUTH_SOCK }}

参考:https://github.com/webfactory/ssh-agent#using-the-docker build-push-action-action https://github.com/webfactory/ssh-agent#using-the-dockerbuild-push-action-action

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 github 操作从 docker build 内的 git repo 安装 PIp 的相关文章

  • 无法在 OS X 上安装 scikit-learn

    我无法安装scikit学习 http scikit learn org stable 我可以通过从源代码构建或通过 pip 来安装其他软件包 没有任何问题 对于 scikit learn 我尝试在 GitHub 上克隆项目并通过 pip 安
  • 检查 docker 在 Gitlab CICD 管道中运行

    我在用着亚搏体育appGitlab CI CD https docs gitlab com ee ci README html构建 Node 服务器的 Docker 镜像 我想知道是否有办法测试它docker run图像的质量还可以 我们很
  • 在 Python 3.5 64 位上通过 pip 安装 OpenCV

    我尝试安装 OpenCV 但找不到任何合适的 pip 软件包 我决定上网查找有关如何安装它的官方文档 并发现this https opencv python tutroals readthedocs io en latest py tuto
  • Tensorflow:docker 镜像和 -gpu 后缀

    在具有 GPU 支持的 Tensorflow 的 Docker 映像中 例如 tensorflow tensorflow 2 2 0 gpu 安装的python包是tensorflow gpu 如图所示pip freeze 安装任何依赖于的
  • Docker:Nginx 和 php5-fpm docker 不说话

    我想进行完全 Docker 化的 Drupal 安装 我的第一步是让容器与 Nginx 和 php5 fpm 一起运行 两者都基于 Debian 我在 CoreOS alpha 频道 使用 Digital Ocean 我的 Dockerfi
  • Redis Docker compose无法处理RDB格式版本10

    我无法在 docker compose 文件中启动 redis 容器 我知道docker compose文件没问题 因为我的同事可以成功启动项目 我读到有一个删除 dump rdb 文件的解决方案 但我找不到它 我使用Windows机器 任
  • 在docker镜像中运行多个脚本

    您好 我想知道是否可以在 docker 容器启动时自动同时运行两个脚本 第一个脚本必须运行客户端应用程序 第二个脚本必须运行服务器应用程序作为后台 You can use CMD在你的Dockerfile https docs docker
  • docker 容器内的 Spring Boot 实时重新加载不起作用

    我们有一个在 docker 容器内运行的 Spring boot gradle 项目 该容器使用 docker 卷 Spring devtools 实时重新加载功能与以下属性一起使用 spring devtools restart enab
  • 在 WSL 实例之间共享 Docker 守护进程

    关于在没有 Docker Desktop 的情况下从 WSL 中运行 Docker 有一篇综合文章here https dev to bowmanjd install docker on windows wsl without docker
  • 在组织内部分发我的 python 模块

    我用 python 制作了一些模块 我想将它们分发到我的组织内 这些模块已经存储在BitBucket中 例如 有什么方法可以使用 pip install 来分发它们吗 正确的方法是什么 您可以从 GitHub 进行 pip 安装 并且应该能
  • 如何正确链接 php-fpm 和 Nginx Docker 容器?

    我正在尝试链接 2 个单独的容器 nginx 最新 https registry hub docker com nginx php fpm https registry hub docker com php 问题是 php 脚本不起作用 也
  • 如何查看哪个用户启动了 Docker 容器?

    我可以查看正在运行的容器的列表docker ps https docs docker com engine reference commandline ps or 同等地 https stackoverflow com q 45254677
  • github 操作未收到机密

    我看过其他答案 但似乎都不起作用 我想我只是想用 Github Actions 做一些非常简单的事情 只需让 access key 可用于我的 github 操作 而不将其放入我的 github 存储库中 所以我认为我们可以创造action
  • Dockerfile 从 amazon s3 或其他需要凭据的源复制文件

    我正在尝试构建 Docker 映像 并且需要将一些文件从 S3 复制到该映像 我正在使用的 Dockerfile 内部 Dockerfile FROM library ubuntu 16 04 ENV LANG C UTF 8 LC ALL
  • 在 docker-compose 构建之后,docker-compose up 运行旧的未更新的容器

    我使用 docker compose 并发现以下问题 当我更改代码并想要重建我使用的泊坞窗时 docker compose stop docker compose build 然后我想通过以下方式运行系统 docker compose up
  • 如何共享/扩展/重用/引用 GitHub Workflow?

    我有两个工作流程 一种方式是通过推送到 master 来部署到测试环境 另一个在发布到生产环境时部署 它们90 相同 代码复制粘贴 是否有一个概念 例如提取部分重复逻辑并将其放入自己的文件 部分 片段中 GitHub Actions 中的重
  • 列出 Docker 容器的卷

    如何列出 Docker 容器的所有卷 我知道它应该很容易获得 但我找不到如何获得 另外 是否可以获取已删除容器的卷并将其删除 您可以使用 docker ps 获取容器 id 并写入 docker检查container id 像这儿 Volu
  • 无法使用docker在Apple Mac芯片M1上启动elasticsearch

    在发布这个问题之前 我浏览了许多链接 例如 Kibana 无法在 Mac M1 上使用 docker 连接到 ElasticSearch https stackoverflow com questions 73160632 kibana c
  • ECS 任务定义是否支持卷映射语法?

    docker compose 规范支持卷映射语法services 例如 version 2 volumes jenkins home external true services jenkins build context args DOC
  • Docker 构建器构建与 docker 构建

    在 Docker 的文档页面上 有一个条目码头工人建造者 https docs docker com engine reference commandline builder 这是父命令docker 构建器构建 https docs doc

随机推荐

  • 如何实现简单的 Android OAuth 和服务器 API [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我有一个 Android 应用程序 它将数据发送到我的网络服务器 数据由 php 处理并存储在 mysql 数据库中 出于安全原因 我
  • 为什么 WCF 中需要 KnownTypeAttribute [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在学习WCF 不了解KnowTypeAttribute的真正优势 有人可以简单地解释一下为什么我们需要它吗 DataContrac
  • Automapper v5 忽略未映射的属性

    以前 当我使用 Automapper v3 x 时 只需添加一个即可忽略未映射的属性 IgnoreUnmappedProperties 扩展看起来像这样 public static class AutoMapperExtensions pu
  • 在运行时获取当前 .NET CLR 版本?

    如何在正在运行的 NET 程序中获取当前的 CLR 运行时版本 查看System Environment Version财产 https learn microsoft com en us dotnet api system environ
  • 如何在 iPhone 中的自定义按钮上设置活动指示器

    我是 iPhone 开发新手 我想设置一个加载在我的自定义按钮上的活动指示器 请指导我 示例 应用商店 gt 搜索 gt 显示更多 25 个 点击时 Add the UIActivityIndicatorView作为按钮的子视图 Creat
  • 每个进程 System.Web.HttpApplication 初始化多少次

    我有global asax它从我创建的自定义类扩展而来 称为MvcApplication它延伸自System Web HttpApplication 在它的构造函数中 它记录应用程序的启动 如下所示 protected MvcApplica
  • 如何将选项传递给 Rust 的 serde,以便可以在 Deserialize::deserialize() 中访问?

    对于上下文 我正在用 Rust 编写光线追踪器 但我正在努力寻找一种以与文件系统无关的方式加载场景的好方法 我在用着serde https serde rs 这样我就不必发明自己的文件格式 还 资源 图像纹理和网格数据 单独存储到场景文件中
  • SignalR 和 require.js 配置

    我正在合并SignalR进入我已经使用的项目需要 js处理我的脚本依赖项 我在确保 jquery signalR 1 1 2 加载后调用 signalr hubs 时遇到了一些麻烦 我已经让它工作了 但我想知道是否有更好的选择 这就是我所拥
  • 如何同步包含克隆元素的 jquery 可排序列表?

    我的情况很特殊 我有两个清单 1 列表包含所有项目 2 包含顶部列表 显然 项目重叠 并且第二个列表中的项目根据它们从列表 1 中克隆的元素标记为类clone 23clone 25 Example List 1 1 run 2 eat 3
  • WPF 图像缩放

    我有一个视图框 里面有一个图像 这非常棒 因为 Viewbox 会缩放图像以适合窗口 但是 我需要能够将图像缩放到完整尺寸并显示滚动条 但我很难弄清楚如何做到这一点 这就是我现在所拥有的 谁能指导我如何修改它以实现上述功能
  • R-lang / 如何使用 R 进行正则表达式 (Perl) 提取

    我使用 javascript 的正则表达式测试器得出以下 3 个正则表达式案例 从文本中提取不同类型的 URL 我想在 R 中使用这些正则表达式 regxi 来满足以下条件 http 网址 https www s 比特利网址 https b
  • 如何显示rails本地项目文件夹中的图像?

    非常基本的问题 但不知何故我无法让它发挥作用 我试图让位于项目本地文件夹中的图像显示在 Rails 上 另外 我正在使用引导程序 因此我需要声明class img responsive 以及 这是原始代码 img class img res
  • 如何将 read_html 的输出保存和读取为 RDS 文件?

    对象可以像这样保存和读取 Save as file saveRDS iris mydata RDS Read back in readRDS mydata RDS 但这似乎不适用于用xml2 read html Example librar
  • 一个JVM下的多个进程

    我们可以在一个 JVM 中运行多个进程吗 每个进程都应该有自己的内存配额吗 我的目标是在新的 http 请求进入时启动新进程 并为该进程分配单独的内存 以便每个用户请求都有自己的内存配额 如果内存配额已满 则不会打扰其他用户请求 我怎样才能
  • android: Parse.com Parseobject classnotfound 错误

    我在 Android 应用程序中使用 Parse com 的库 但收到以下错误 05 26 18 43 31 838 E AndroidRuntime 4759 致命异常 主要 05 26 18 43 31 838 E AndroidRun
  • 反应多个过滤器下拉菜单

    我有 React 应用程序 您可以在其中根据几个不同的属性过滤列表 目前 我可以一次过滤每个类别 但我想一次过滤多个类别 因此当您选择更多过滤器时 列表会变得越来越小 然后 当您清除所有值时 它将返回到原始列表 我怎样才能实现这个目标 de
  • 解析/转换 cookie 为 JSON 格式

    我们有任何 javascript 库或正则表达式来解析 将 cookie 转换为 JSON 格式吗 有些cookie是这样的 cookie referer example com post id 22 bcomID 8075 subretu
  • 替换非渲染(非显示)元素文本中的 ↵ (\n)

    我正在编写一个解析器 从隐藏的 iframe 中获取数据 在文本中我需要替换 n 个字符 空间 我用它来完成这项任务 text replace n gi 但是 它仅适用于可见元素 即没有display none 如果该元素不可见 displ
  • PHP json_decode 返回 null

    我正在努力让它发挥作用 但看不出我哪里出了问题 有人可以帮忙吗 Hint 初始 JSON 存储在 json变量 不验证 Code FIXED
  • 使用 github 操作从 docker build 内的 git repo 安装 PIp

    我正在致力于将通用模块分离到我们 github 组织的专用存储库中 使用 git repo 中的 pip installDockerfile安装组织内部开发的共享模块 RUN pip3 install r requirements txt