Как выполнить команду docker в узле: 10 контейнер в GitLabCI - PullRequest
1 голос
/ 20 сентября 2019

Я пытаюсь проверить мой код, написанный в nodejs v10.

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

Мне нужно сделать это в нескольких базах данных, таких как mongodb, pg ,asticsearch и т. Д.

Ниже приведен пример моего теста

describe('test Mongo', () => {
  let container = null;
  beforeEach(async() => {
    container = await start_a_container_using_child_process_exec(); // exec(`docker run -d --rm -p 27017:27017 mongo:latest`)
  });
  it('test1', () => { 
    // connect to database and do something
  });
  it('test2', () => { 
    // connect to database and do something
  });
  afterEach(async () => {
    await container.remove();
  });
})

Он хорошо работает в моей Windowsсреда с запущенным рабочим столом.

Но этот код не запускается в Gitlab-CI.Ниже мой gitlab-ci.yaml

stages:
  - test
test:
  image: node:10
  stage: test
  script:
    - 'npm install'
    - 'npm run test'

Я продолжаю получать сообщение об ошибке «docker: not found» при попытке запуска контейнера.

Есть ли какое-либо изображение nodejs v10, которое я могуполучить какой он поставляется вместе с установленным докером?

Или есть другой способ решить эту проблему?

1 Ответ

0 голосов
/ 23 сентября 2019

Вы можете использовать образ Docker, созданный для создания образов Docker, и установка nodejs на этом образе должна быть простой.

Вы можете создать шаблон gitlab-ci.yml в gitlab repo, создать новый файл в графическом интерфейсе и выбрать шаблон gitlab-vi.yml, затем выбрать шаблон докера
Удалить ненужную частьDocker создаст и установит nodejs, и ваши задачи должны помочь.

Редактировать:

# This file is a template, and might need editing before it works on your project.
build-master:
  # Official docker image.
  image: docker:latest
  stage: build
  services:
    - docker:dind
  script:
    - apk add nodejs # install nodejs 
    - node app.js # run nodejs file 
    - docker ps # run docker 


Консольный журнал сборки gitlab, работающей в Docker & nodejs
Найдите зеленый цвет вконец журнала.

PS
Пишу с телефона, извините, если ответ не отформатирован.

...