Глядя на ваши журналы (до того, как вы удалили их из исходного вопроса), я мог видеть, что у вас есть несколько ошибок в вашем скрипте сборки до шага в Dockerfile
, где вы делаете npm install
.Например, sudo
не удался, тест с [
также не удался, чтобы упомянуть некоторые из них.
Этот скрипт сборки на самом деле очень плохо написан, так как он никогда не проверяет ошибки.Любая проблема будет просто проигнорирована.Когда важная команда может потерпеть неудачу, вы должны проверить код возврата ($?
) равным нулю, прежде чем продолжить.Другой вариант - остановить любую ошибку, используя set -e
в самом начале скрипта.
Что касается других ошибок, вам недостаточно информации, чтобы помочь вам.Пожалуйста, обновите вопрос с полными журналами, как они были раньше (просто удалите важные части) и с содержимым вашего package.json
.Также необходимо проверить версию npm и nodejs, запущенную на Jenkins и на вашем компьютере, и проверить, совпадают ли они.
Изменить после повторного добавления журналов к вопросу:
Глядя на эти строки ваших журналов:
17:30:28 ./qaBuild.sh: 23: [: REPOSITORY TAG IMAGE ID CREATED SIZE
17:30:28 nurenui-v1 latest c6fd05d82c12 13 hours ago 43.7MB: unexpected operator
17:30:28 Error response from daemon: conflict: unable to remove repository reference "nurenui-v1" (must force) - container e300a467c2e0 is using its referenced image c6fd05d82c12
Стало ясно, что вы используете необработанный вывод команды docker images $_imagetag
, который определенно не то, что ты хочешь.Если вы попробуете эту команду, вы увидите, что вывод содержит много другой информации, такой как заголовок, размер, тег и т. Д. Даже если изображение не существует, оно выводит строку заголовка.Это буквально то, что логи говорят вам, что-то вроде этого:
REPOSITORY TAG IMAGE ID CREATED SIZE
nurenui-v1 latest c6fd05d82c12 13 hours ago 43.7MB
Чтобы сделать эту проверку, вы должны добавить -q
к команде.Таким образом, он ничего не выведет, если изображение не найдено.Измените эту строку, чтобы она выглядела так:
if [ -n "$(docker images -q $_imagetag)" ]; then
removeOldImage
fi
buildImage
... но это не единственная проблема, которая у вас есть.Я также вижу контейнер, использующий это изображение ... и я даже не проверял package.json.