YAML模式
DockerPush原生步骤的YAML模式如下:
- 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 |
可以指定图像资源。如果指定了一个,则 必须指定BuildInfo资源如果 |
可选 可能需要 |
此外,可以定义这些标签来支持步骤的本机操作:
从Bash派生的标签
标签 |
使用说明 |
必需的/可选 |
---|---|---|
targetRepository |
Artifactory中Docker存储库的名称。当使用JFrog CLI v1时需要,当管道配置为使用JFrog CLI v2时不需要。 必须是本地存储库。不支持虚拟存储库。 |
可能需要 |
forceXrayScan |
当 默认是 |
可选 |
failOnScan |
当设置为 默认是 |
可选 |
autoPublishBuildInfo |
当设置为 默认是 |
可选 |
执行
声明要在执行前和执行后阶段执行的shell命令序列的集合:
标签 | 使用说明 | 必需的/可选 |
---|---|---|
onStart |
在本机操作之前执行的命令 | 可选 |
调用onSuccess |
成功完成时执行的命令 | 可选 |
onFailure |
完成失败时执行的命令 | 可选 |
onComplete |
在任何补全时执行的命令 | 可选 |
执行的操作onExecute
阶段是此步骤类型所固有的,并且不能被覆盖。
例子
下面的示例展示了如何配置DockerPush步骤来推送Docker镜像。
将图像推到人工
将DockerBuild输入步骤创建的映像推送到Artifactory。不会触发扫描。
- 这个例子需要Artifactory集成和一个GitHub集成。
- 这个示例的管道DSL是可以在这个存储库在JFrogGitHub帐户。
- 有关完整教程,请参见管道示例:Docker构建和推送。
这个配置文件是模板化的,所以它可以很容易地定制。值可以与值一起提供。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。请注意,在这两个步骤中都指定了一个关联组。
—名称: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射线扫描和更新输出映像资源已添加到前面的示例中。
—名称: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(保存/更新运行状态下的构建信息,以供以后发布步骤使用)