У меня есть файл docker compose (3), который я выполняю развертывание стека докеров
на. Я делаю это в конвейере Jenkins.
Я работаю с тегами, когда устанавливаю переменную среды API_TAG
, и (соответствующая часть) соответствующий файл компоновки докеров выглядит следующим образом.
version: '3'
services:
api:
image: registry:5000/api:${API_TAG}
Как мне работать с тегами для других служб в этом файле компоновки стека / докера, который я не просто создал? Конвейер, с которым я работаю, строит только приложение api, а не три базы данных, от которых оно зависит. Однако в этих базах данных также есть определенные теги (а не только последний
). Действительно ли мне нужно запрашивать в кластере роя текущие службы и теги для этой базы данных, чтобы развертывание стека докеров
ничего не испортило?
В идеале, ваш файл компоновки стека должен содержать все службы, которые вы выполняете в качестве контейнеров для этого приложения, поэтому да, если у вас есть контейнер базы данных, который необходимо включить, он должен быть в файле компоновки и вы управляете версией / тегом, запущенным в этом файле компоновки.
Идея здесь в том, что вы можете создать файл компоновки (или составить файл и переопределить файл ), который будет работать с docker-compose up
для локальной разработки и развертывание стека докеров
для развертываний роя.
Альтернативный, но более сложный способ ИМО - запускать другие службы в их файле составления / стека и использовать их вручную - создали оверлейные сети, чтобы убедиться, что все они находятся в одной виртуальной сети докеров.