Как использовать образ докера с этапа сборки на этапе развертывания в CircleCI 2.0?
В последние несколько дней изо всех сил пытается перейти с 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
Работа приводит к дублированию кода, что я не хочу.
1 ответ
Вы , вероятно, захотите сохранить рабочее пространство и присоединить его к своему заданию развертывания. после этого вам не нужно будет использовать '- checkout'
https://circleci.com/docs/2.0/configuration-reference/
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
Если вы пометите изображение, созданное build
этап, вы можете ссылаться на это в deploy
этап: https://docs.docker.com/compose/compose-file/