【问题标题】:How to copy a workspace of a job from jenkins master to slave container and copy back from slave to master?如何将工作的工作区从詹金斯主容器复制到从容器并从从容器复制回主容器?
【发布时间】:2020-07-21 05:52:23
【问题描述】:

对我来说,Jenkins master 和 slave 都在 docker 容器上运行。我在调用从属设备(Linux docker 容器)之前构建的主工作空间。我想将 master 工作的工作空间复制到我的从容器中,因为该工作空间中的文件将用于进一步执行。

在从容器上成功执行后,它会生成一些日志文件,我想将这些文件复制回 Jenkins master 以将报告作为电子邮件发送。

PS:Jenkins master 和 slave 都运行顺利。从容器是通过在 docker 模板中配置图像和其他所需设置来创建的。

我对 Jenkins 和 docker 容器很幼稚,我不知道如何实现这一点。请提出一些建议来实现这一目标。提前感谢大家的努力和建议。

【问题讨论】:

    标签: docker jenkins containers


    【解决方案1】:

    通常,您不会共享工作区以在构建代理之间交换文件/构建工件,但您将使用“构建工件”。

    您可以通过 Jenkins 流水线脚本执行此操作。请参阅以下示例中的archiveArtifacts 步骤:https://www.jenkins.io/doc/pipeline/tour/tests-and-artifacts/

    现在您可以在下一个构建阶段复制工件,或者如果它是另一个构建作业,您可以为 Jenkins 使用 Copy Artifact Plugin

    您将保存的工件不必是“构建工件”,而是可以是您工作区中的任何文件。所以你例如也可以存档测试文件,您将在后面的步骤中使用。

    【讨论】:

    • 谢谢@A.K.您的解决方案对我来说已经奏效了一半,就像我能够使用复制工件从主复制到从复制一样。但是在slave上执行后,它会生成日志和一些其他文件。如何将这些日志等从从容器发送到主容器。当容器执行完毕后,它会被杀死并且容器的工作空间会被立即删除。如何保存/复制从属容器工作区以用于报告目的?
    • 您还可以将工件(报告日志)存档在从站上。然后它们将显示在作业概览中(完成时)并自动存储在 amster 节点上。如果报告可以通过插件解析(例如plugins.jenkins.io/tap),您还可以在从节点上 ypour 构建之后添加日志解析作为步骤。
    • 超级,还有一件事,存档的工件将存储在哪里?以及如何访问它?
    • 请查看有关如何使用 Archive Artifact/Copy Artifact for Jenkins 的文档。 jenkins.io/doc/pipeline/steps/copyartifact jenkins.io/doc/pipeline/steps/core jenkins.io/doc/pipeline/tour/tests-and-artifacts 这将回答您的大部分问题。如果您对解决方案有一些更具体的问题/问题,您仍然可以提出。
    猜你喜欢
    • 2020-11-10
    • 2019-12-05
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-19
    相关资源
    最近更新 更多