У меня есть следующие logi c в моем GitLab-ci.yml:
stages:
- build
- deploy
variables:
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
make_patch:
image: node:10.19
stage: build
script:
- npm install
- make
- make source-package
cache:
key: ${CI_COMMIT_REF_SLUG}
paths:
- node_modules/
artifacts:
when:
paths:
- test.tar.bz2
expire_in: 2 days
test_feature:
stage: deploy
image: dockerhub_image:123
script:
- apt-get install bzip2
- apt-get install curl -y
- ls -lah
- curl -kL https://mygitlabserver/namespace/project/-/jobs/artifacts/master/download?job=make_patch
- tar -xvjf test.tar.bz2
- docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
- docker build --no-cache -t $IMAGE_TAG .
- docker push $IMAGE_TAG
Итак, я пытаюсь протестировать изменения в моем репо, создав изображение nodejs; если он компилируется, я сохраняю zip-файл, содержащий все веб-файлы, которые необходимо использовать в потенциальной производственной системе. Затем я загружаю существующий образ из хаба publi c docker (поскольку это приложение с открытым исходным кодом, которое мы модифицируем). Я хочу обновить там веб-папку, а затем попытаться создать из нее контейнер docker и сохранить его в репозитории моего проекта. Как видно из вывода ниже, в настоящее время он не работает, потому что, как указал @marvin, dockerhub_image: 123 в не имеет docker cli.
523$ docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
524/bin/bash: line 107: docker: command not found
525[cmd] sh exited 1
526[cont-finish.d] executing container finish scripts...
527[cont-finish.d] done.
528[s6-finish] waiting for services.
529[s6-finish] sending all processes the TERM signal.
530[s6-finish] sending all processes the KILL signal and exiting.
532ERROR: Job failed: exit code 1
Я определил токен развертывания в мой проект выглядит так:
Name: webtoken
Username: webtoken-1
Created: Aug 6, 2020
Expires: Never
Scopes
read_repository, read_registry, write_registry, read_package_registry, write_package_registry
Я нашел этот пост: Gitlab CI - docker: команда не найдена
Но у меня проблемы понимание времени, где я бы включил ссылку на изображение docker в моем случае. Или я могу просто добавить пункт услуг в это задание "test_feature"?
services:
- docker:dind
Извините за исправительные вопросы. Я просто новичок во всем docker и GitLab. Я попытался изменить задание test_feature вот так, но все равно не удалось с той же ошибкой:
test_feature:
stage: deploy
image: dockerhub_image:123
services:
- docker:dind
script:
- apt-get install bzip2
- apt-get install curl -y
- ls -lah
- curl -kL https://mygitlabserver/namespace/project/-/jobs/artifacts/master/download?job=make_patch
- tar -xvjf test.tar.bz2
- docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY
- docker build --no-cache -t $IMAGE_TAG .
- docker push $IMAGE_TAG