#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.
Поэтому я ценю любую помощь.