Я пытаюсь заставить GitLab CI runner собрать свой проект из образа Docker и установить пакет NPM во время сборки. Мой .gitlab-ci.yml
файл был вдохновлен этой темой Gitlab CI с Docker и NPM , где ПО занималось идентичной проблемой:
image: docker:stable
services:
- docker:dind
stages:
- build
cache:
paths:
- node_modules/
before_script:
- export REACT_APP_USERS_SERVICE_URL=http://127.0.0.1
compile:
image: node:8
stage: build
script:
- apk add --no-cache py-pip python-dev libffi-dev openssl-dev gcc libc-dev make
- pip install docker-compose
- docker-compose up -d
- docker-compose exec -T users python manage.py recreate_db
- docker-compose exec -T users python manage.py seed_db
- npm install
- bash test.sh
after_script:
- docker-compose down
К сожалению, это решение не сработало, ноЯ чувствую, что сейчас я немного ближе к реальному решению. Я получаю две ошибки во время сборки:
/bin/bash: line 89: apk: command not found
Running after script...
$ docker-compose down
/bin/bash: line 88: docker-compose: command not found
Как мне устранить эту проблему?
Редактировать:
image: docker:stable
services:
- docker:dind
stages:
- build
- test
before_script:
- export REACT_APP_USERS_SERVICE_URL=http://127.0.0.1
compile:
stage: build
script:
- apk add --no-cache py-pip python-dev libffi-dev openssl-dev gcc libc-dev make
- pip install docker-compose
- docker-compose up -d
- docker-compose exec -T users python manage.py recreate_db
- docker-compose exec -T users python manage.py seed_db
testing:
image: node:alpine
stage: test
script:
- npm install
- bash test.sh
after_script:
- docker-compose down
Я переехалтесты на отдельной стадии testing
, которую я должен был сделать в любом случае, и я решил, что определил изображение там, чтобы отделить его от стадии сборки. Без изменений. Docker не может быть найден и bash test также не может быть запущен:
$ bash test.sh
/bin/sh: eval: line 87: bash: not found
Running after script...
$ docker-compose down
/bin/sh: eval: line 84: docker-compose: not found