Независимый от Codeship CI для микросервисов в монорепозитории

В настоящее время у нас есть монолитное приложение NodeJS. Тесты выполняются в Codeship, и если тесты зеленые, код будет развернут в Heroku. Это довольно легко.

Поэтому мы хотели бы разбить наше монолитное приложение на микросервисы, и мы предпочитаем решение с монорепозиторием.

Например, у нас есть service-1 и service-2 в репо. Мы хотели бы настроить независимый CI и конвейер развертывания для каждого сервиса на Codeship.

my-repo
  - service-1
    - src
    - package.json
    - docker-compose.yml
    - codeship-steps.yml
  - service-2
    - src
    - package.json
    - docker-compose.yml
    - codeship-steps.yml

У вас есть идеи, как мы можем настроить идеальный CI?


person Peter Kota    schedule 08.11.2018    source источник


Ответы (1)


Да CodeShip Pro предоставляет подход, подобный Docker Compose, для настройки нескольких сервисов из одного пространства проекта. Предполагая, что микросервисы уже разделены на отдельные папки, codeship-services.yml может выглядеть следующим образом:

    service-a:
      build:
        context: ./service-a
        dockerfile: Dockerfile # The Dockerfile in ./service-a directory

    service-b:
      build:
        context: ./service-b

Пожалуйста, ознакомьтесь с нашим подробным вводным руководством для получения дополнительной информации.

person Drew Kitch    schedule 08.11.2018
comment
Спасибо за быстрый ответ! :) То есть в этом случае, если я внесу изменения в service-b, то будет работать только независимый CI service-b? Я хотел бы развернуть независимо все службы. - person Peter Kota; 09.11.2018
comment
Если вы внесете изменение в service-b, то это изменение затронет только service-b. - person Drew Kitch; 09.11.2018