Использование docker-compose с несколькими репозиториями

в настоящее время я борюсь с развертыванием своих служб, и я хотел спросить, каков правильный способ, когда вам приходится иметь дело с несколькими репозиториями. Репозитории независимы,но для запуска в производство все должно быть запущено.

Мои Настройки:

  • Бэкэнд Репозитория Git:
    • Бэкэнд Проекта Rails
    • docker-compose: бэкэнд (expose 3000), db и redis
  • Git-Репозиторий Внешний интерфейс
    • Экспресс.сервер JS
    • docker-compose: (expose 4200)

оба могут быть запущены независимо, и тест может быть выполнен CI

  • Git репозиторий Nginx для производства
    • необходимо подключиться к двум другим службам (той же сети docker)
    • перенаправляет запросы в нужную службу

Я уже пытался включить эти две службы в качестве подмодули в репозиторий Nginx и используют docker-compose репозитория nginx, но я не очень доволен этим.

1 ответов


вы можете иметь ваши CI строить и толкать изображения для каждой службы, которую вы хотите запустить, и иметь рабочую среду запустить все 3 контейнера.

тогда ваша продукция docker-compose.yml будет выглядеть так:

lb:
  image: nginx
  depends_on:
    - rails
    - express
  ports: 80:80

  rails:
    image: yourorg/railsapp

  express:
    image: yourorg/expressapp

отметим, что docker-compose не рекомендуется для производственных сред; вы должны смотреть на, используя Распределенные Пакеты Приложений (это все еще экспериментальная функция, которая будет выпущена в core в версии 1.13)

кроме того, вы можете организовать свои контейнеры с помощью такого инструмента, как ansible или сценарий bash; просто убедитесь, что вы создаете сеть docker и прикрепляете к ней все три контейнера, чтобы они могли найти друг друга.

Edit: начиная с Docker v17 и устаревания DABs в пользу составить файл v3 кажется, что для одного узла в средах, docker-compose является допустимым способом для запуска приложений с несколькими службами. Для сценарии multi-host/HA / clusterised вы можете посмотреть в любом Докер Рой для самостоятельного решения, или Настройки Облако для более PaaS подхода. В любом случае, я бы посоветовал вам попробовать его в играть-с-докер, официальная онлайн-песочница, где вы можете раскрутить несколько хостов и поиграть с кластером Роя без необходимости раскручивать свои собственные коробки.