在这个快速入门中,管道的成功运行是这样的:
教程视频
开始之前
在尝试快速入门之前,请确保您具备:
- GitHub账户。这是分叉示例存储库所必需的。
- 一个卡塔尔世界杯赛程时间表 帐户,或自托管JFrog管道。
- Artifactory中的用户帐户,具有至少一个二进制存储库的部署权限。
- 创建一个本地Docker存储库成立Artifactory公司码头工人注册表。
- 至少一个节点池。这是所有管道步骤将在其中执行的节点集。有关更多信息,请参见管理管道节点池。
运行本例
执行以下步骤来构建和推送Docker镜像:
分叉存储库
此示例的管道DSL可在jfrog-pipelines-docker-sample存储库中的JFrogGitHub帐户。
DSL文件是一个包含管道定义的yaml文件。该示例使用一个YAML文件,
pipelines.yml
。该文件包含所有资源和工作流步骤的声明。2022世界杯阿根廷预选赛赛程有关yml文件中使用的所有资源、管道和步骤的完整分解,请参见2022世界杯阿根廷预选赛赛程pipelines.yml下面的部分。Fork这个存储库到你的账户或组织。这一点很重要,因为你需要管理员访问作为Pipeline source或GitRepo资源使用的存储库,以便向这些存储库添加webhook并侦听更改事件。2022世界杯阿根廷预选赛赛程
登录Artifactory
用您的Artifactory证书登录JFrog平台。添加集成
a.去政府|管道|集成来添加两个集成:
- GitHub集成此集成用于添加Pipeline源,以及定义在pipelines.yml。
- Artifactory集成此集成用于与Artifactory进行身份验证,以将Docker映像推送到
docker-local
Artifactory中的存储库。
b.写下GitHub和Artifactory集成的名称,因为这些是必需的下一个步骤。确保名字是唯一的,容易记住。
更新管道。yml文件
管道配置可在pipelines.yml文件。编辑此文件在你的Git分支库中替换下面的代码:
标签 描述 例子 gitProvider
提供在上一步中添加的Github集成的名称。 gitProvider: my_github
路径
提供此存储库分支的路径。 路径:myuser / repo-name
注册表
提供您在上一步中添加的Artifactory集成的名称。 注册中心:艺术
imageName
提供您的Docker镜像路径和名称。 docker.artprod.mycompany.com
/ docker_local /菲律宾
在那里,docker.artprod.mycompany.com/ docker_local
图像路径是和吗菲律宾
是图像的名称。sourceArtifactory
提供你的Artifactory集成。 sourceArtifactory:艺术
所有管道定义都是全局的JFrog管道在一个项目中。管道和资源的名称在内部必须是唯一的2022世界杯阿根廷预选赛赛程项目简介JFrog管道。
添加管道源
的管道来源代表存储管道定义文件的Git仓库。管道源通过类连接到存储库集成,这是我们在上一步添加的。
按照以下说明添加管道源把它指向
pipelines.yml
在你的分叉库中。这将自动将您的配置添加到平台,并基于您的YAML创建管道。的管道
.yml
解析文件,并按配置添加资源、步骤和管道2022世界杯阿根廷预选赛赛程。管道源同步成功后,导航到管道|我的管道在左侧导航栏中查看新添加的管道。在这个例子中,
pipeline_dbp
是我们管道的名称。单击管道的名称。这呈现管道的实时、交互式图表及其最近一次运行的结果。
执行管道
您可以通过向Git存储库提交更改来触发管道,或者通过UI手动触发它。管道中的步骤按顺序执行。如果节点池中有多个可用的构建节点,则可以并行执行多个步骤。
一旦管道完成,就会列出新的运行。
pipelines.yml
的pipelines.yml
文件由资源、管道和步骤组成,如下图所示2022世界杯阿根廷预选赛赛程:
2022世界杯阿根廷预选赛赛程
这个例子使用了以下类型的2022世界杯阿根廷预选赛赛程:
GitRepo
一个GitRepo资源用于将JFrog pipeline连接到源代码控制存储库。将它添加到repo中会创建一个webhook,这样以后提交时就会自动创建一个带有webhook有效负载的新版本。
-名称:dbp_repo类型:GitRepo配置:gitProvider: my_github # <——替换为您的集成路径:jfrog/jfrog- pipelinesdocker -sample # <——替换为您的存储库名称分支:include: master
标签 |
描述 |
必需的/可选 |
---|---|---|
名字 |
该名称用于在步骤中引用资源,并且在JFrog Pipelines环境中的所有存储库中必须是唯一的。 |
要求 |
|
的名字GitHub集成。 | 要求 |
路径 |
从集成根目录到存储库的路径。 | 要求 |
分支机构 |
的 |
可选 |
图像
一个图像资源用于将对Docker镜像的引用添加到管道中。Image资源可以同时用作输入和输出。像DockerBuild这样的步骤将生成它作为输出,而像DockerPublish这样的步骤将使用它作为输入发布到Docker注册表。在我们的示例中,它被用作DockerPush的outputResource的一步。
-名称:dbp_image类型:映像配置:注册表:art # <——替换为您的artifactory集成sourceRepository: docker_local # <——如果注册表是artifactory imageName: docker.artprod.mycompany.com/docker_local/dbp # <——替换为您的映像路径和名称imageTag: latest autoPull: true
标签 |
描述 |
必需的/可选 |
---|---|---|
名字 |
dbp_image 是名字吗?标识资源。 |
要求 |
注册表 |
艺术 名字是a吗Docker注册表集成。 |
要求 |
sourceRepository |
docker_local 是Artifactory中映像将发布到的存储库的名称。 |
如果注册表是在JFrog Artifactory必需的 |
imageName |
Docker镜像的文件路径,格式为imageRepo/imageName。 | 要求 |
imageTag |
Docker镜像的初始版本的版本标签。 | 要求 |
autoPull |
当真正的,图像自动拉到机器运行的步骤。 默认为假。 |
可选 |
BuildInfo
BuildInfo时自动创建的DockerBuild步骤用于生成包。然后将BuildInfo发布到已配置的Artifactory仓库(sourceArtifactory:艺术
)通过PublishBuildInfo步骤中提供该资源DockerPush的一步。
—名称:dbp_build_info类型:BuildInfo配置:sourceArtifactory: art buildName: dbp_build buildNumber: 1—名称:dbp_promoted_build_info类型:BuildInfo配置:sourceArtifactory: art buildName: dbp_build buildNumber: 1
标签 |
描述 |
必需的/可选 |
---|---|---|
名字 |
该名称用于在步骤中引用资源,并且在JFrog Pipelines环境中的所有存储库中必须是唯一的。 |
要求 |
|
|
要求 |
buildName |
|
可选 |
buildNumber | 与BuildInfo相关联的构建的编号。 | 可选 |
管道
pipeline_dbp
,用于构建和推送Docker镜像的管道定义。
步骤
的pipeline_dbp
管道包含以下内容本机的步骤:
DockerBuild
的DockerBuild原生步骤执行构建,从Git源存储库中的Dockerfile生成Docker映像。
这个步骤从GitRepo源存储库资源。的名称和目录Dockerfile包含要由控件处理的命令码头工人建造
命令,以及结果图像的名称和标记。映像在构建节点上构建,有关该映像的信息存储在运行状态中。
—名称:docker_build类型:DockerBuild配置:affinityGroup: dbp_group dockerFileLocation:。dockerFileName: Dockerfile dockerImageName: docker.artprod.mycompany.com/docker_local/dbp #替换为您的图像路径和名称dockerImageTag: ${run_number} inputResources: - name: dbp_repo2022世界杯阿根廷预选赛赛程 integrations: - name: art # <——替换为您的人工集成
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 |
这是在将该步骤分配为下一步的输入时使用的名称, |
要求 |
affinityGroup |
必须指定与后续?中指定的关联组字符串相同DockerPush的一步。 这两个DockerBuild和DockerPush步骤被分配给dbp_groupaffinityGroup这样它们就有了相同的状态。如果不是,DockerBuild步骤的输出将无法用于DockerPush步骤。 |
可选 |
dockerFileLocation |
包含Dockerfile或包含Docker构建配置的文件的目录 | 要求 |
dockerFileName |
Dockerfile的名称 | 要求 |
dockerImageName |
要创建的Docker镜像的名称。这可以通过使用环境变量或使用参数触发运行来设置。 |
要求 |
dockerImageTag |
要创建的Docker映像的标记。这可以通过使用环境变量或使用参数触发运行来设置。 在我们的例子中,图像的标记设置为管道的运行号,即当前正在执行的运行号。 |
要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定:
此步骤接受' dbp_repo '作为文件inputResource根据提供的Dockerfile构建镜像。 可选地,还可以指定: |
必需的/可选 |
集成 |
必须指定Artifactory集成。 | 要求 |
DockerPush
的DockerPushnative步骤将指定的Docker镜像推送到Artifactory。
—名称:docker_push类型:DockerPush配置:affinityGroup: dbp_group targetRepository: docker-local integration:—名称:art # <——替换为您的artifactory integration inputSteps:—名称:docker_build outputResources:—名称:dbp_image . zip2022世界杯阿根廷预选赛赛程
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 | docker_push 是标识步骤的名称。 |
要求 |
affinityGroup |
必须指定与先前?中指定相同的关联组字符串DockerBuild的一步。 | 可选 |
targetRepository |
Artifactory中Docker存储库的名称。 | 要求 |
集成 |
必须指定Artifactory集成。 | 要求 |
inputSteps |
必须指定命名DockerBuild在同一个亲和性组中的步骤。 前一个的输出(结果) |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
可以指定图像资源。如果指定了一个,则 这一步输出' dbp_image '作为outputResource,如果需要,可以使用它来触发下游依赖步骤或管道。 |
可选 可能需要 |
PublishBuildInfo
的PublishBuildInfo一步发布BuildInfo将图像附加到Artifactory。BuildInfo为构建提供了一个清单,包括关于模块、依赖项和其他环境变量的元数据。
BuildInfo也可以通过任何特定于语言的发布步骤来发布autoPublishBuildInfo
标记设置为true。
—名称:publish_dbp_build类型:PublishBuildInfo配置:inputSteps:—名称:docker_push outputResources:—名称:dbp_build_in2022世界杯阿根廷预选赛赛程fo
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 | publish_dbp_build 是名字吗?这标识了步骤。 |
要求 |
inputSteps |
必须指定DockerPush的一步。前一步的输出(结果)用作此步骤的inputStep。 步骤必须不已经建立 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定BuildInfo要发布的资源。 |
要求 |
PromoteBuild
的PromoteBuild原生步骤促进thedbp_build_info并将相关工件从一个Artifactory存储库移动或复制到另一个Artifactory存储库。
这一步需要aPublishBuildInfo和前一步一样BuildInfo资源作为成功执行的输入。
—名称:promote_dbp_build类型:PromoteBuild配置:targetRepository: demo-pipelines集成:—名称:art inputResources:—名称:dbp_build_info outputRe2022世界杯阿根廷预选赛赛程sources:—名称:dbp_promoted_build_info
标签 |
使用说明 |
必需的/可选 |
---|---|---|
名字 | promote_dbp_build 是标识步骤的名称。 |
要求 |
targetRepository | demo-pipelines 是tArtifactory中要将构建提升到的存储库的名称。 |
要求 |
集成 |
必须指定Artifactory集成。 | 要求 |
input2022世界杯阿根廷预选赛赛程Resources |
必须指定一个命名的BuildInfo资源的buildName 和buildNumber 属性标识要提升的构建。 |
要求 |
output2022世界杯阿根廷预选赛赛程Resources |
必须指定一个命名的BuildInfo资源以映射到提升的构建。BuildInfo将更新为buildName 和buildNumber 的输入BuildInfo资源,以及它的targetRepo 的值targetRepository 。 |
要求 |