云客户?
免费开始>
在MyJFrog中升级>
云的新功能>





概述

DockerPush原生步骤将Docker镜像推送到Docker注册表。


  • 目前,Artifactory只支持Docker注册表。
  • DockerBuild和DockerPush的步骤必须分配给相同的affinityGroup共享状态。如果不是,DockerBuild的输出将无法用于DockerPush。欲知更多有关affinityGroup看到管道的步骤

Docker构建和推送快速入门

Docker构建和推送快速入门类的管道的定义DockerBuild和DockerPush原生步骤构建单个Docker镜像,将其推送到Artifactory,然后发布BuildInfo。

页面内容


YAML模式

DockerPush原生步骤的YAML模式如下:

DockerPush
- name: 步骤:- name:  type: DockerPush配置:#继承bash的所有标签;//m.si-fil.com/confluence/display/JFROG/Bash affinityGroup:  targetRepository:  #可能需要。必须是本地存储库。不支持虚拟存储库。forceXrayScan:  # default false failOnScan:  # default true autoPublishBuildInfo:  # default false integrations: - name:  # required inputSteps: - name:  # required outputResources: - name: 2022世界杯阿根廷预选赛赛程 # optional - name:  # required if autoPublishBuildInfo为true执行:onStart: - echo "准备工作…" onSuccess: - echo "Job well done!" onFailure:onComplete: - echo:“清理一些东西”

标签

名字

一个字母数字标识步骤的字符串(允许使用下划线)。

类型

必须DockerPush对于这一步,输入:

配置

指定步骤执行环境的所有配置选择。此步骤继承Bash/PowerShell步骤配置标签,包括这些相关的标签:

标签

使用说明

必需的/可选
affinityGroup 必须指定与指定相同的关联组字符串吗在之前DockerBuild一步 可选
集成 必须指定Artifactory集成 要求
inputSteps 一般情况下,DockerBuild构建图像的步骤。DockerBuild步骤必须始终在同一个亲和组中,但其他步骤,如Bash或PowerShell,也允许在同一个亲和组中,在DockerBuild和DockerPush之间。 可能需要
output2022世界杯阿根廷预选赛赛程Resources

可以指定图像资源。如果指定了一个,则imageTag属性将使用dockerImageTag前面的DockerBuild的一步。

必须指定BuildInfo资源如果autoPublishBuildInfo设为真正的。如果JFROG_CLI_BUILD_NAMEJFROG_CLI_BUILD_NUMBER设置为管道或输入的环境变量DockerBuild步骤,该名称和/或数字用于输出BuildInfo。否则,默认的buildNamebuildNumberpipeline_name美元run_number美元分别。

可选

可能需要


此外,可以定义这些标签来支持步骤的本机操作:

从Bash派生的标签

所有本地步骤都派生自Bash的一步。这意味着所有步骤都共享来自Bash的相同基本标记集,而本机步骤有自己的附加标记以及支持该步骤的特定功能的标记。所以熟悉这个很重要Bash步骤定义,因为它是所有其他步骤定义的核心。

标签

使用说明

必需的/可选
targetRepository

Artifactory中Docker存储库的名称。当使用JFrog CLI v1时需要,当管道配置为使用JFrog CLI v2时不需要。

必须是本地存储库。不支持虚拟存储库。

可能需要
forceXrayScan

真正的,强制对推送的图像进行扫描JFrog x光

默认是

可选
failOnScan

当设置为真正的,w然后是x光策略规则失败的构建复选框,则x射线扫描失败将导致该步骤失败。

默认是真正的

可选
autoPublishBuildInfo

当设置为真正的,使用Docker镜像发布构建信息。

默认是

可选


执行

声明要在执行前和执行后阶段执行的shell命令序列的集合:

标签 使用说明 必需的/可选
onStart 在本机操作之前执行的命令 可选
调用onSuccess 成功完成时执行的命令 可选
onFailure 完成失败时执行的命令 可选
onComplete 在任何补全时执行的命令 可选


执行的操作onExecute阶段是此步骤类型所固有的,并且不能被覆盖。


例子

下面的示例展示了如何配置DockerPush步骤来推送Docker镜像。

将图像推到人工

将DockerBuild输入步骤创建的映像推送到Artifactory。不会触发扫描。

DockerPush
这个配置文件是模板化的,所以它可以很容易地定制。值可以与值一起提供。yml文件。template: true #本地模板需要valuesFilePath: ./values。—名称:2022世界杯阿根廷预选赛赛程app_repo1类型:GitRepo配置:gitProvider:{{。gitIntegration}}路径:{{. values。gitRepositoryPath}}分支:包括:master - name: app_buildinfo1类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}} -名称:app_promoted_buildinfo1类型:BuildInfo配置:sourceArtifactory: {{. values。artifactoryIntegration}}管道:—名称:app_dev_pipeline步骤:—名称:app_build类型:DockerBuild配置:affinityGroup: docker_group dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: {{. values。artifactoryUrl}}/{{. values。sourcererepository}}/{{. values。imageName}} dockerImageTag: ${run_number} inputR2022世界杯阿根廷预选赛赛程esources:—name: app_repo集成:—name: {{. values。artifactoryIntegration}} -名称:app_push类型:DockerPush配置:affinityGroup: docker_group targetRepository: {{. values。sourcererepository}}集成:—name: {{. values。artifactoryIntegration }} inputSteps: - name: app_build - name: publish_app_build type: PublishBuildInfo configuration: affinityGroup: docker_group inputSteps: - name: app_push outputResources: - name: app_buildinfo

亲密团体

扩展了DockerBuild例子把这个形象推给Artifactory。请注意,在这两个步骤中都指定了一个关联组。

DockerPush
—名称:demo_pipeline步骤:—名称:bld_image类型:DockerBuild配置:affinityGroup: dockerGroup dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: docker.artprod.mycompany.com/gosvc #替换为您的完全符合dockerImageTag: ${run_number} dockerOptions:——build-arg build_number_env_variable=${run_number} inputResources: -名称:gosvc_app集成:-名称:MyArtifactory -名称:docke2022世界杯阿根廷预选赛赛程rPushStep类型:DockerPush配置:affinityGroup: dockerGroup targetRepository: dockerRepo inputSteps: -名称:bld_image outputResources: -名称:outputBuildInfo集成:-名称:MyArtifactory

发布构建信息,触发x射线扫描,更新输出图像资源

在这里,发布构建信息、触发x射线扫描和更新输出映像资源已添加到前面的示例中。

DockerPush
—名称:demo_pipeline步骤:—名称:bld_image类型:DockerBuild配置:affinityGroup: dockerGroup dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: docker.artprod.mycompany.com/gosvc #替换为完全符合Docker注册表/图像名称dockerImageTag: ${run_number} dockerOptions:——build-arg build_number_env_variable=${run_number} inputResources: -名称:gosvc_app集成:-名称:MyArtifacto2022世界杯阿根廷预选赛赛程ry -名称:dockerPushStep类型:DockerPush配置:affinityGroup: dockerGroup targetRepository: dockerRepo autoPublishBuildInfo: true forceXrayScan: true inputSteps: -名称:bld_image output2022世界杯阿根廷预选赛赛程Resources:—name: outputBuildInfo—name: outputImage集成:—name: MyArtifactory

它是如何工作的

当你使用DockerPush它是管道中的原生步骤,在后台执行以下功能:

  • 将当前默认Artifactory配置设置为为集成而设置的配置集成
  • restore_run_files(复制从DockerBuild步骤中保存的构建信息)
  • jfrog rt docker-push(将图像推送到Artifactory)
  • j青蛙rt构建-发布(如果autoPublishBuildInfo为true,则发布构建信息)
  • write_output(如果autoPublishBuildInfo为true,则更新BuildInfo (buildName和buildNumber)
  • write_output(如果有输出图像资源,更新图像imageTag)
  • Jfrog rt build-scan(如果forceXrayScan为true,触发扫描)
  • Add_run_files(保存/更新运行状态下的构建信息,以供以后发布步骤使用)
  • 没有标签
版权所有©2023 JFrog Ltd.