Cloud customer?
Start for Free >
Upgrade in MyJFrog >
What's New in Cloud >





Overview

An Image resource is used to add a reference to a Docker image to your pipeline.


An Image resource holds information of a docker image that is stored through a Docker Registry Integration that may in one of the following registry sources:

  • JFrog Artifactory / JFrog Container Registry
  • Amazon Container Registry
  • Google Container Registry
  • Azure Container Registry
  • Docker Hub

An Image resource can be used as both input and output. Step like DockerBuild will generate it as an output and steps like DockerPublish will use it as input to publish to a Docker registry.

Page Contents


YAML Schema

resources:
  - name: 		<string>
     type: 		Image
     configuration:
       registry:        	<docker integration name>
       sourceRepository: 	<name of the artifactory repo>   # required if registry is Artifactory
       region:              <string>                         # required if registry is on AWS
       imageName:	    	<imageRepo/imageName>
       imageTag: 			<string>
       autoPull: 			<boolean> #(default true)
       pin:
         versionId:         <number>
         imageTag:          <string> 

Tags

name 

An alphanumeric string (underscores are permitted) that identifies the resource.

type 

Must be Image for this resource type.

configuration

Specifies all configuration selections for the resource.

Tag

Description

Required/Optional
registry The name of a Docker Registry IntegrationRequired
sourceRepository 

The name of the repository in Artifactory to which the images will be published. Required for Docker images in Artifactory when the pipeline is configured to use JFrog CLI v1.

This is not used when the pipeline is configured to use JFrog CLI v2.

Required if registry is in JFrog Artifactory with JFrog CLI v1
regionRequired if registry is on AWS
imageName

The file path of the Docker image, of the form imageRepo/imageName

Required
imageTagThe version tag of the initial version of the Docker imageRequired
autoPull 

Defaults to true. The image is automatically pulled to the machine running the step.

Optional
pin

This configuration can be used to pin the resource to a specific version. The pinned resource version will be used by the steps that reference this resource as an input and newer versions will be ignored.

Users have two configuration options when selecting the Image resource version to be pinned:

  • versionId -- Resource version Id (can be obtained through the UI)

Or

  • imageTag -- The version tag to be pinned

Steps that use the resource as an output can still produce new versions. New versions will be visible for steps using the resource as an input as long as they are part of the same run of the step that created the version.

When creating a new run, manual custom trigger can still be used to override the pinned version to a different one.

Optional

Environment Variables

Whenever Image is used in a step, a set of environment variables is automatically made available that you can use in your step.

Environment Variable

Description

res_<resource_name>_name
Name of the resource
res_<resource_name>_sourceRepository
The name of the repository in Artifactory
res_<resource_name>_regionThe AWS region identifier
res_<resource_name>_imageNameThe file path of the Docker image
res_<resource_name>_imageTagThe version tag of the initial version of the Docker image
res_<resource_name>_autoPull Value of the autopull flag

Examples

The Pipelines DSL for this example is available in this repository in the JFrog GitHub account.

Example 1

resources:  
  - name: Image_1
    type: Image	
    configuration:	   
      registry: PSSG_DockerRegistry	      
      imageName: docker/jfreq_win	      
      imageTag: latest

pipelines:
  - name: pipelines_Image_1
    steps:
      - name: step_Image_1
        type: PowerShell
        configuration:
          nodePool: win_2019
          inputResources:
            - name: Image_1
        execution:
          onExecute:
            - write-output "executing step..."
            - if($Image_1_isTrigger -ne "true"){
              Write-Error "Stop" -ErrorAction Stop
              }

Example 2

resources:
  - name: Image_2
    type: Image
    configuration:
      registry: s_artifactory
      sourceRepository: docker-local
      imageName: ubuntu
      imageTag: latest

pipelines:
  - name: pipelines_IMAGE_2
    steps:
      - name: step_IMAGE_2
        type: PowerShell
        configuration:
          nodePool: win_2019
          inputResources:
            - name: Image_2
        execution:
          onExecute:
            - write-output "executing step..."
  • No labels
Copyright © 2022 JFrog Ltd.