Как запустить команды docker-compose из динамически запускаемой команды compose? - PullRequest
1 голос
/ 09 июля 2019

Из-за использования нескольких микро-сервисов, каждый из которых имеет свои собственные зависимости базы данных (некоторые перекрываются).У меня есть собственный bash-файл, который позволяет разработчику выбирать, какие микросервисы они хотят запускать локально (для тестирования), по сути, он создает команду:

РЕДАКТИРОВАТЬ: благодаря ответу, указывающему, вам нужно -fперед каждым созданием .yml файла я использую это, я просто изначально не набирал его здесь.

docker-compose -f \
-f <docker-compose.ms1.yml> -f <docker-compose.ms2.yml> \
-f <docker-compose.dba> -f <docker-compose.dbb> \
up ms1-container ms2-container \
dba-container dbb container

Теперь это работает нормально, но традиционно (используя один файл .yml и простопод управлением docker-compose up), если бы я хотел посмотреть выходные журналы, я бы сделал docker-compose logs -f, или если бы я хотел перезапустить определенную службу в файле compose, я бы:

docker-compose stop <service_name>
docker-compose rm <service_name>
docker-compose create <service_name>
docker-compose start <service_name>

Но теперь свсе началось динамически, как я могу перезапустить определенную службу создания докеров, а также как я могу вернуться в журналы с помощью logs -f?

1 Ответ

1 голос
/ 09 июля 2019

Сначала я думаю, что ваша docker-compose команда недействительна, она должна быть:

docker-compose -f docker-compose_1.yaml -f docker-compose_2.yaml up -d

Затем все то же самое, что и у той, которую вы просто используете * docker-compose.yaml:

Например

docker-compose_1.yaml:

version: '3'
services:
  frontend:
    image: alpine
    command: "tail -f /dev/null"

docker-compose_2.yaml:

version: '3'
services:
  backend:
    image: alpine
    command: "tail -f /dev/null"

Вы можетепо-прежнему используйте docker-compose -f docker-compose_1.yaml -f docker-compose_2.yaml stop frontend для остановки одного сервиса:

shubuntu1@shubuntu1:~/77$ docker-compose -f docker-compose_1.yaml -f docker-compose_2.yaml ps
    Name             Command         State     Ports
----------------------------------------------------
77_backend_1    tail -f /dev/null   Up
77_frontend_1   tail -f /dev/null   Exit 137

Для журналов docker-compose -f docker-compose_1.yaml -f docker-compose_2.yaml logs для всех сервисов и docker-compose -f docker-compose_1.yaml -f docker-compose_2.yaml logs backend для одного сервиса.

Ссылка на официальное руководство:

Вы можете указать несколько конфигурационных файлов -f.Когда вы предоставляете несколько файлов, Compose объединяет их в одну конфигурацию.Compose строит конфигурацию в том порядке, в котором вы предоставляете файлы.Последующие файлы переопределяют и добавляют к своим предшественникам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...