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.
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 |
---|---|---|
| The name of a Docker Registry Integration | Required |
| 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 |
| Required if registry is on AWS | |
| The file path of the Docker image, of the form imageRepo/imageName | Required |
| The version tag of the initial version of the Docker image | Required |
| Defaults to true. The image is automatically pulled to the machine running the step. | Optional |
| 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:
Or
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>_region | The AWS region identifier |
res_<resource_name>_imageName | The file path of the Docker image |
res_<resource_name>_imageTag | The 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 t his 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..."