如何在CircleCI 2.0的部署步骤中使用构建步骤中的docker映像?

如何在CircleCI 2.0的部署步骤中使用构建步骤中的docker映像?,docker,deployment,circleci-2.0,circleci-workflows,Docker,Deployment,Circleci 2.0,Circleci Workflows,在从CircleCI 1.0迁移到2.0的最后几天中苦苦挣扎,尽管构建过程已经完成,但部署仍然是一个大问题。CircleCI文档并没有太大帮助 这里有一个与我所拥有的类似的config.yml: version 2 jobs: build: docker: - image: circleci/node:8.9.1 steps: - checkout - setup_remote_docker - run

在从CircleCI 1.0迁移到2.0的最后几天中苦苦挣扎,尽管构建过程已经完成,但部署仍然是一个大问题。CircleCI文档并没有太大帮助

这里有一个与我所拥有的类似的
config.yml

version 2

jobs:
  build:
    docker:
      - image: circleci/node:8.9.1

    steps:
      - checkout
      - setup_remote_docker

      - run
          name: Install required stuff
          command: [...]

      - run:
          name: Build
          command: docker build -t project .

  deploy:
    docker:
      - image: circleci/node:8.9.1
    steps:
      - checkout
      - run:
          name: Deploy
          command: |
            bash scripts/deploy/deploy.sh
            docker tag project [...]
            docker push [...]

workflows:
  version: 2
  build-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
          filters:
            branches:
              only: develop

问题出现在
deploy
作业中。我必须指定
docker:-image
点,但我想从
build
作业中重用环境,其中已安装了所有必需的内容。当然,我可以只在
deploy
作业中安装它们,但是有多个
deploy
作业会导致代码重复,这是我不想要的。

如果您标记由
构建
阶段构建的映像,然后,您可以在
deploy
阶段中引用它:

您可能希望持久化到工作区并将其附加到部署作业中。 之后,您不需要使用“-checkout”


您是指图像
项目
?如果是这样的话,我想我不需要在
deploy
工作中安装所有的东西。我假设我需要相同的图像
circleci/node:8.9.1
,在那里我检查了代码并安装了所需的东西。
jobs:
    build:
        docker:
            - image: circleci/node:8.9.1

        steps:
            - checkout
            - setup_remote_docker

            - run
                name: Install required stuff
                command: [...]

            - run:
                  name: Build
                  command: docker build -t project .
            - persist_to_workspace:
                    root: ./
                    paths:
                        - ./

    deploy:
        docker:
            - image: circleci/node:8.9.1
        steps:
            - attach_workspace:
                at: ./
            - run:
                  name: Deploy
                  command: |
                      bash scripts/deploy/deploy.sh
                      docker tag project [...]
                      docker push [...]

workflows:
    version: 2
    build-deploy:
        jobs:
            - build
            - deploy:
                  requires:
                      - build
                  filters:
                      branches:
                          only: develop