当前位置: 首页 > 知识库问答 >
问题:

在 Openshift 构建期间使用真正的 git 存储库?

卜存
2023-03-14

当Openshift从git存储库构建时,源代码以这样的方式被克隆/导出,即克隆不是git repo,即没有.git目录。有人知道如何将这种行为变成真正的克隆人吗?

相关文档(https://docs . open shift . com/container-platform/3.5/dev _ guide/builds/build _ inputs . html # source-code)中什么都没有,但是文档并不总是它们可能是的样子。

我们的用例是,我们的项目使用了一个gradle插件,它将关于git状态的信息添加到构建工件中。这在Openshift中不会内置。

共有2个答案

国俊艾
2023-03-14

冒着违背权威答案(字面上)的风险,我发现我不需要定制的汇编脚本。的确,《守则》。git目录在< code>/tmp/src中根本不存在。我的情况可能有所不同,因为我正在复制,例如:

s2i build file://$(pwd) --copy --keep-symlinks ${S2I_IMAGE} ${IMAGE_TO_BUILD}

在这种情况下,有一个正则表达式,它排除了复制 .git 目录(通过 https://github.com/openshift/source-to-image/issues/457 处的问题找到)。因此,就我而言,我不需要通过设置排除正则表达式来排除该 .git 目录:

s2i build file://$(pwd) --exclude="" --copy --keep-symlinks ${S2I_IMAGE} ${IMAGE_TO_BUILD}

有了这个,就不需要更改汇编脚本,.git 目录被复制到汇编上下文中根本没有问题。

阎弘
2023-03-14

编写S2I构建器时,默认情况下,源代码将被注入目录/tmp/src。您的自定义汇编脚本,如果它需要保留被注入文件的文件,将移动或复制文件到它们的最终位置,例如/选择/app-root/src。如果发生编译阶段,通常这是在任何编译阶段之前完成的。然后构建将在目标目录中运行。

当移动或复制文件并使用通配符时,你需要确保隐藏文件以“.”开头包括在内。例如:

shopt -s dotglob
echo "---> Installing application source ..."
mv /tmp/src/* ./

如果您没有< code>shopt -s dotglob,那么可以使用< code >这样的目录。git将不包括在内。如果后续版本需要< code >,这将是一个问题。git目录存在。

如果您使用的是其他人的 S2I 构建器,并且 .git 目录被留下了,则可以在应用程序代码目录中包含一个可执行的 .s2i/bin/assemble 脚本并添加到其中。

#!/bin/bash

mv /tmp/src/.git ./

/usr/libexec/s2i/assemble

这假设原始的汇编脚本位于典型的/usr/libexec/s2i/位置。

 类似资料:
  • 主要内容:创建一个远程存储库在本章中,我们将看到如何创建一个远程Git仓库; 我们需要一个远程Git仓库来执行团队协作。这一篇文章很重要,直接影响到后面的章节的学习。所以,希望大家可先耐心地看完本章内容,并按本章一步步的操作。 创建一个远程存储库 我们将演示在 http://git.oschina.net/ 软件项目的托管平台上创建和初始化一个新的存储库。 注:你也可以使用 GitHub (http://github.com

  • 键入状态报告 消息 说明禁止访问指定的资源。

  • 概述 本文由Daniel Messer(Technical Marketing Manager Storage @RedHat)和Keith Tenzer(Solutions Architect @RedHat)共同撰写。 Storage for Containers Overview – Part I Storage for Containers using Gluster – Part II

  • 问题内容: 我建立不使用包管理器一个相当小的系统(Ubuntu的16.04搬运工图像)(除,,和)。因此,我安装了以下先决条件: 然而,在源根失败,因为 我知道有很多关于Perl项目的解决方案,如何告诉CPAN安装所有依赖项?。但是,使用GNU自动工具和可以解决该问题的选项可能是从到目前为止我还不清楚的环境变量中读取的。 Ubuntu 16.04提供了,但没有命令(这就是我添加源安装的原因)。识别

  • 我想在我新创建的GitHub存储库中添加一个新文件夹,而不安装用于(Mac、Linux和Windows)的Git设置。有可能这样做吗? 当我在不同的系统/机器上工作时,我不能让Git一直陪伴在我身边。我知道如何在上的存储库中直接添加文件。我们也可以创建一个文件夹吗?

  • 我想监控我们的集中git存储库,并在Grafana中可视化它们。最后,我想创建一个图表,它在X轴上有仓库名称,在Y轴上有磁盘空间(即条形图)。 我正在写一本《普罗米修斯出口商》。我不确定定制出口商的公制类型。 如果我设计的导出器返回以下内容: 然后,我必须定义并添加大量的量表。走这条路对吗?有更好的解决办法吗?另外,我想看看git存储库的磁盘空间是如何随时间变化的。 如果我使用直方图度量类型会更好