使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库

2023-12-03

我是 Docker 新手,正在尝试让我的 Angular Web 应用程序在容器中构建和运行。

我在项目的根目录中有一个非常基本的 Dockerfile,如下所示:

# Create the image based on the official Node 10.13.0 image from Dockerhub
FROM node:10.13.0 as node

# Copy dependency definitions
COPY package.json .

# Install dependencies using npm
RUN npm install

# TODO - copy rest of app and run angular-cli build commands to serve up the app

在对其运行构建命令后,我遇到了以下错误:

enter image description here

通过查找此错误,我意识到我尚未从主机提供任何主机密钥详细信息,因此这些详细信息可用于访问私有存储库。

我在这里遇到了一些关于提供主机密钥详细信息的方法的旧答案,例如this one,但我没有走得更远,仍然遇到同样的错误。

通过在我的 dockerfile 中回显这些内容并在终端中查看详细信息,我能够确认我正确引用了我的主机密钥。

无论如何,我不确定正确或官方的做法是什么。

我正在 macOS High Sierra 上运行 Docker 2.0.0.0-maxc78

谁能指出正确的方向,告诉我这里的正确方法是什么?

Thanks!


这种情况将受益于最近的docker build secret.

docker build --secret id=mysite.key,src=path/to/mysite.key .

在您的 Dockerfile 中使用它:

# syntax=docker/dockerfile:1.0.0-experimental

FROM alpine

RUN --mount=type=secret,id=mysite.key command-to-run

查看更多内容“在 Docker 18.09 中构建机密和 SSH 转发“(你的docker 2.0.0应该支持它)

对于您的情况,您的 Dockerfile 应包括:

RUN --mount=type=ssh git clone [email protected]:myorg/myproject.git myproject

在 docker 客户端,您需要使用以下命令定义此构建允许 SSH 转发--ssh flag.

docker build --ssh default .

该标志接受定义本地 SSH 代理套接字或私钥位置的键值对。

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

使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库 的相关文章

随机推荐

  • 如何生成私有 LINQ to SQL 类?

    我正在尝试弄清楚如何生成LINQ 到 SQL类被标记为私有而不是公共 以便它在程序集外部不可见 在 Visual Studio O R 设计器或SqlMetal工具 除非我遗漏了一些东西 有没有办法做到这一点 我这么问是因为我在内部使用 L
  • getLastRow() 的问题

    我对 getLastRow 有疑问 我认为这个函数应该返回包含数据的最后一行 但是 由于我正在处理的工作表在填充数据的行下方有更多的空行 因此这些函数似乎会进入并选择执行时的最后一个空行 而不是选择包含数据的最后一行 这可能不会是相同的 有
  • 模板中的 for 循环

    I need for在模板中循环 for i start i lt finish i do something 这只是使用的一种方式吗range使用准备好的数组或者如何将此功能添加到模板中 最简单的方法可能是使用range和一个外部函数 例
  • iOS WKWebview loadHTMLString(_ baseURL:) 加载图像和读取css失败

    我知道这个问题以前曾被问过 但我的情况有些不同 我正在尝试打电话给loadHTMLString baseURL on WKWebview我的 baseURL 位于AppData Documents目录 我需要HTMLstring加载并且需要
  • 数据流失败并出现 java.lang.NoSuchMethodError: io.grpc.protobuf.ProtoUtils.marshaller(Lcom/google/protobuf/Message;)

    我正在尝试让 Dataflow 作业在 Google Cloud 上运行 它总是失败 java lang NoSuchMethodError io grpc protobuf ProtoUtils marshaller Lcom googl
  • 在打字稿中,有没有办法确保函数的返回类型是详尽的?

    如果你有一个像这样的常量枚举 enum Color RED GREEN BLUE 您可以编写一个助手和一个 switch 语句 function assertNever x never never throw new Error Unexp
  • 在 Python 中使用 BeautifulSoup 识别和替换 XML 元素

    我正在尝试使用 BeautifulSoup4 来查找和替换 XML 中的特定元素 更具体地说 我想找到 file name 的所有实例 在下面的示例中 文件名是 Cyp26A1 atRA minus tet plus txt 并将其替换为该
  • 如何在 Visual Studio 中向解决方案资源管理器添加自定义图标

    我正在尝试将自定义图标添加到 Visual Studio 中的解决方案资源管理器 就像文件图标扩展 does 我认为我已经为 Visual Studio 做了所有正确的事情 将新图标与以 结尾的文件关联起来 d and di扩展 但 Vis
  • 如何创建具有运行时间限制的数据结构

    我需要实现一个支持插入删除和搜索的数据结构 O log n 并在 O 1 中提取特殊对象 我的数据结构需要保存按 ID 排序的车辆 并且每辆车都有一个字段表示距离下一次服务的时间 我需要在 O 1 时间内提取接下来需要提供服务的车辆 欢迎所
  • 如何在Protege 4.3.0中启用Pellet?

    已经过去快一年了无法下载 Protege 4 3 的 Pellet 插件建议该版本不可用 有什么改变吗 应该可以从他们的 github 下载它并将其放入 Prog g 的插件文件夹中 https github com Complexible
  • 重复时间序列数据的 Pandas 滚动中位数

    我看到 Pandas 不允许重复的时间序列索引 yet https github com pydata pandas issues 643 但很快就会添加 我想知道是否有一种好方法可以通过多索引标签 列将滚动窗口方法应用于具有重复时间的数据
  • parseInt() 和 parseFloat() 位于哪里?

    当我在控制台中按 TAB 时 我看到了 parseInt 和 parseFloat 我只需输入 parseInt 123asd 但这些位于哪里 它们是全局对象的属性 内置函数 对于浏览器来说 这是window
  • 字符串作为数组索引

    In 3 XoePhoenix 数组索引是字符数组类型 我们可以用 C 来做这个吗 数组索引不是必须是整数吗 什么是3 XeoPhoenix mean 3 XoePhoenix 是相同的 XoePhoenix 3 所以它将评估为 char
  • IE10、11 带连字符的 CDATA 解析错误

    我遇到过这样的问题 当尝试解析从服务器收到的 xml 时 CDATA 块中包含的消息在 IE10 11 中解析 直到找到第一个连字符 请参阅我收到的 XML 示例
  • Chrome headless 忽略系统代理

    编辑 这是演示该问题的 YouTube 视频 https youtu be MIZjHKCVr1s 我正在使用 headless 标志与 chrome 一起运行 selenium 但显然使用 headless 似乎会忽略系统代理 我之前在
  • 将数组中的对象推入循环内[重复]

    这个问题在这里已经有答案了 几个小时以来 我一直在尝试解决这个问题 但我似乎确实无法成功 我正在尝试创建一个 JSON 字符串 如下所示 但是在传递变量的值时obj到变量j我得到的数组仅包含该循环的最后一个结果 而不是得到如下结果 mach
  • SCI - 系统控制中断向量是如何定义的?

    根据 ACPI 规范 FADT 固定 ACPI 描述表 表包含一个字段 用于报告SCI中断操作系统的编号 该字段定义如下 我在 Intel x86 平台上转储了 FADT 表 看到 SCI 中断与编号相关联9 但根据英特尔手册 0 31是
  • matplotlib 动态子图数量

    我正在尝试使用以下方法获取子图matplotlib 数量为subplots在运行时计算 如pnum以下示例有所不同 pnum len args m f ax1 ax2 plt subplots pnum sharex True sharey
  • 从 iOS 导出椭圆曲线密钥以与 OpenSSL 配合使用

    我生成了私钥 公钥对并将其存储在 Secure Enclave 内 它是 256 位椭圆曲线密钥 唯一可以存储在 Secure Enclave 中的密钥类型 I use SecKeyCreateWithData and SecKeyCopy
  • 使用主机 SSH 密钥在 DockerFile 中访问私有 Git 存储库

    我是 Docker 新手 正在尝试让我的 Angular Web 应用程序在容器中构建和运行 我在项目的根目录中有一个非常基本的 Dockerfile 如下所示 Create the image based on the official