Узел тестирования сервера (docker) с GitLab CI - PullRequest
0 голосов
/ 20 января 2020

Итак, я написал простой одностраничный сервер с узлом и express. Я написал файл Docker для этого и запустил его локально. Затем я собрал коллекцию почтальонов и проверил конечные точки.

Я хочу сделать это с помощью gitlab ci, используя newman, поэтому я придумал следующее .gitlab-ci.yml:

image: docker:latest

services:
  - docker:dind

before_script:
  - docker build -t test_img .
  - docker run -d -p 3039:3039 test_img

stages:
  - test

# test

api-test:
  image: 
    name: postman/newman:alpine
    entrypoint: [""]
  stage: test
  script:
    - newman run pdfapitest.postman_collection.json

Он не говорит :

docker build -t test_img. / bin / sh: eval: строка 86: docker: не найдено

ОШИБКА: задание не выполнено: код выхода 127

полный вывод: https://pastebin.com/raw/C3mmUXKa

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

1 Ответ

0 голосов
/ 20 января 2020

Проблема заключается в том, что ваше задание api-test использует для запуска сценария изображение postman/newman:alpine.

Это означает, что когда GitLab пытается запустить раздел before_script, у него нет команды docker доступно.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...