docker-compose – мережева взаємодія між різними проектами

Проблема

Бувають випадки коли маємо декілька проектів які описані в різних docker-compose файлах, які повинні комунікувати між собою та бути доступними через docker networks. Проте за замовчуванням всі контейнери ізольовані, тобто проєкт з одного docker-compose не буде доступний для іншого.

Для налаштування взаємодії нам допоможе bridging та external networks. Для взаємодії двох проектів які описані в окремих docker-compose файлах потрібно створити загальну мережу, яку вкажемо в обох файлах компоуз. Після чого сервіси зможуть взаємодіяти між собою.

Для прикладу використаємо два проекти:

  • monitoring-compose.yaml – файл в якому описана графана та прометеус;
  • prom-exporters.yaml – файл в якому описані експортери для прометеус;

Розв’язання проблеми

Для початку додамо в інсуючий проект external: true в networks (при першому запуску компоуз мережа буде створена автоматично), редагуємо перший файл monitoring-compose.yaml:

а тепер другий файл prom-exporters.yaml:

Запускаємо, провалюємось в контейнер з графаною, пробуємо перевірити доступність node-exporter, використавши ping:

Посилання на тему

Click to rate this post!
[Total: 0 Average: 0]