Служба NestJS заданий GitLab CI с Mongoose

#docker #continuous-integration #gitlab #nestjs #pipeline

#docker #непрерывная интеграция #gitlab #nestjs #конвейер

Вопрос:

Я пытаюсь настроить файл gitlab-ci.yml для простого серверного проекта NestJS в области непрерывной интеграции Gitlab, в этом проекте есть службы для сохранения в базе данных MongoDB.

У меня тоже есть клиент angular, и ранее я правильно установил этот клиент в Gitlab, и я могу получить к нему доступ через общедоступный сайт GitLab.

введите описание изображения здесь

Я использовал этот файл gitlab-ci.yml для серверного проекта.

 image: node:14.15.0

stages:
  - install
  - test
  - build
  - deploy

install:
  stage: install
  script: 
- npm install
  artifacts:
expire_in: 1h
paths:
  - node_modules/
  cache:
paths:
  - node_modules/

tests:
  stage: test
  dependencies:
- install
  script:
- npm run test:ci
  coverage: '/Statements.*?(d (?:.d )?)%/'

build:
  stage: build
  variables:
BUILD_CONFIG: 'production'
  dependencies:
- install
  script:
- npm run build
  artifacts:
expire_in: 1h
paths:
  - dist/
  only:
- master

pages:
  stage: deploy
  dependencies:
- build
  script:
- npm i -g @nestjs/cli
- npm install
- nest start
  artifacts:
paths:
  - public/
  environment:
name: production
  only:
- master 

Этот файл успешно выполняет этапы «установка, тестирование и сборка», но на этапе развертывания происходит сбой, см. Изображение.

введите описание изображения здесь

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

На этапе развертывания я устанавливаю модуль NestJS и запускаю его, но я думаю, что это неправильно. правильный способ — использовать образы Docker как для NestJS, так и для MongoDB, но на самом деле я точно не знаю, как это сделать на стороне GitLab.

Поэтому я ценю любую помощь.