Будет ли назначение сети одному сервису изолировать ее от других сервисов в docker-compose? - PullRequest
0 голосов
/ 18 октября 2018

У меня есть много служб, работающих и использующих сеть по умолчанию.

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

  integration-test:
    image: image:some-image:tag
    container_name: integration-test
    command: node_modules/.bin/jest integration/
    networks:
      - frontend
    depends_on:
      - mongodb

Достаточно ли назначить сеть этой службе, отделив ее, таким образом, от других служб или мне нужно назначить другую сеть для всех других служб?

1 Ответ

0 голосов
/ 22 октября 2018

TLDR;Да, это отделит интеграционный тест от любых других сервисов в вашем файле docker-compose.

Более длинная версия ...

По умолчанию docker-compose создает сеть моста для вашего docker-compose.Файл .yml в формате project_default (AKA - сеть по умолчанию).

Следующие два определения службы в точности совпадают.

app:
  build: .
  networks:
    - default

app:
  build: .

Если вы хотите, чтобы ваша служба подключалась кдополнительная сеть, тогда вы должны указать как default, так и другую сеть.

app:
  build: .
  networks:
    - default
    - frontend

Если вы хотите, чтобы ваша служба работала ТОЛЬКО на другой службе, просто удалите default из сетей.

app:
  build: .
  networks:
    - frontend

Если вы когда-либо сомневаетесь в том, какие контейнеры подключены к каким сетям, вы всегда можете проверить контейнер или сеть.например.docker inspect frontend или docker inspect project_app_1

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