CircleCI工作流程是否可以在第一步中创建Docker映像,然后在第二步中测试该Docker映像?

问题描述 投票:1回答:1

我是CircleCI工作流程的新手,我想创建一个包含两个步骤的工作流程。

  1. 第一步(构建作业)将构建并推送具有特定标签的Docker映像到Docker注册表。成功终止第一个之后步骤将触发第二个工作流程步骤并移交Docker映像。
  2. 秒步骤将通过步骤1(例如,使用ENV变量)移交来下载图片。有点像
version: 2
    jobs:
      build:
        docker:
          - image: docker.repo.ch/image:${TAG}

CircleCI工作流程中是否有某种机制可以将值作为参数从一项构建工作移交给另一项?

docker circleci circleci-2.0
1个回答
3
投票
由于每个运行步骤都是一个新的shell,因此环境变量是没有跨步骤共享。如果您需要一个环境变量可以通过多个步骤访问,请使用BASH_ENV导出值。
https://circleci.com/docs/2.0/env-vars/#setting-an-environment-variable-in-a-step

将变量导出到下一个作业:

workflows: version: 2 pass_tag: jobs: - create_tag - use_tag: requires: - create_tag executors: node: docker: - image: circleci/node:4.8.2 jobs: create_tag: executor: node steps: - run: echo "export MY_TAG=$CIRCLE_SHA1" >> $BASH_ENV use_tag: executor: node steps: - run: echo $MY_TAG
推送并使用docker图像:

使用CircleCI orbs(类似于库)来构建并推送图像:version: 2.1 orbs: aws-ecr: circleci/[email protected] workflows: version: 2 example: jobs: - aws-ecr/build-and-push-image: account-url: DEV_AWS_ECR_ACCOUNT_URL aws-access-key-id: DEV_ACCESS_KEY_ID aws-secret-access-key: DEV_SECRET_ACCESS_KEY create-repo: true repo: '${CIRCLE_PROJECT_REPONAME}' region: AWS_DEFAULT_REGION tag: '${CIRCLE_SHA1}' - pull_image: requires: - aws-ecr/build-and-push-image jobs: pull_image: *** pull and use your image here ***

© www.soinside.com 2019 - 2024. All rights reserved.