Использование сервисов в Gitlab CI работает в основном так же, как и запуск различных контейнеров докеров (именованных сервисов в docker-compose), которые доступны вашему контейнеру, выполняющему конкретное задание.
Итак, согласно вашему сообщению об ошибке, я предполагаю, что ваш код пытается достичь базы данных postgres на localhost
, которая работает, когда вы запускаете обе программы на компьютере разработчика. В Gitlab CI это два контейнера, которые «имеют оба собственных localhost
» и должны использовать имена DNS, такие как postgres
, для подключения к другому контейнеру. Так как вы используете изображение под названием postgres
, Gitlab также называет сервис таким образом.
Пожалуйста, попробуйте использовать имя хоста postgres
вместо localhost
для подключения к базе данных в процессе узла, и доступ должен работать. В соответствии с вашими другими определенными переменными, это может уже работать, просто добавив еще один variable
из POSTGRES_HOST: postgres
(или аналогичный - я не знаком с конфигурацией sequelize)
Для получения подробной информации об услугах в Gitlab CI, пожалуйста, проверьте документы , которые даже предоставляют образец для вашего конкретного случая использования доступа к услуге postgres
и некоторые разъяснения по этому конкретному вопросу .