Я установил сборку gitlab-ci с архитектурой, показанной ниже.
.
Контейнер слушателя не может связаться с контейнером postgres, используя имя хоста, ' postgres '.Имя хоста не распознано.Как может контейнер слушателя взаимодействовать с экземпляром базы данных postgres?
В документации рекомендуется настроить экземпляр postgres как службу в .gitlab-cy.yml .Задания CI, определенные в .gitlab-ci.yml , могут подключаться к экземпляру postgres через имя службы ' postgres '.
Контейнеры tusd , minio и listener создаются в процессе docker-compose, запускаются внутри pytest CI работа.Контейнер listener записывает информацию обратно в базу данных postgres.
Впоследствии я подумал об использовании IP-адреса службы postgres вместо имени хоста.В рамках задания сборки Pytest CI я попытался определить IP-адрес базы данных postgres, используя следующую последовательность команд bash:
- export DB_IP = "$ (docker inspect -f '{{range.NetworkSettings.Networks}} {{. IPAddress}} {{end}} 'postgres) "* 1035 *
- echo" АДРЕС БД IS IS $ DB_IP "
Однако postgres не распознаетсякак контейнер.
Как определить IP-адрес службы postgres?Или я могу использовать IP-адрес общего бегуна?Как мне это определить?
У кого-нибудь есть идеи?
Обновление 11/1/2019 Решено путем перемещения всех служб в файл docker-compose, чтобы они могли общаться друг с другом.Это включает в себя контейнер postgres и т. Д. ... После некоторого рефакторинга при инициализации тестовой среды тесты теперь вызываются с помощью команды run docker-compose.
Теперь можно успешно запускать тесты с использованием gitlab-shared runner…