РЕДАКТИРОВАТЬ: Для тех, кто сталкивается с этим, я думаю, что причина этого не работала, потому что
A) У меня не было правильно установлено WORKDIR /home/gradle/project
.
Б) Я не уверен, почему, когда я устанавливаю ENTRYPOINT ["gradle", "clean", "build", "--debug"]
в конце Dockerfile, который запускается в начале моего этапа в Gitlab Runner, я вижу ошибку. Но когда я удаляю ENTRYPOINT...
и просто оставляю WORKDIR в конце файла Docker, gradle clean build
может успешно работать как опция сценария в конвейере.
Кто-нибудь знает, почему это так?
Я настраиваю конвейер CI / CD gitlab, используя gradle для создания java кода.
Я использовал gradle, работая со старым изображением, и допустил ошибку при перезаписи тега изображения в гитлаб. Я использую тот же docker файл сборки, который работал до того, что теперь выдает ошибку о том, что файл не может быть найден.
Это мой docker файл
FROM gradle:4.6-jdk8
USER root
RUN apt-get update
RUN apt-get -y --allow-unauthenticated install apt-transport-https ca-certificates curl gnupg2 software-properties-common
RUN add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"
RUN apt-get update
RUN apt-get -y --allow-unauthenticated install docker-ce
RUN apt-get -y install python-pip
RUN pip install awscli
USER gradle
ENTRYPOINT ["gradle", "clean", "build"]
Это сообщение об ошибке
14 FAILURE: Build failed with an exception.
15 * What went wrong:
16 The specified settings file '/home/gradle/if [ -x /usr/local/bin/bash ]; then
17 exec /usr/local/bin/bash
18 elif [ -x /usr/bin/bash ]; then
19 exec /usr/bin/bash
20 elif [ -x /bin/bash ]; then
21 exec /bin/bash
22 elif [ -x /usr/local/bin/sh ]; then
23 exec /usr/local/bin/sh
24 elif [ -x /usr/bin/sh ]; then
25 exec /usr/bin/sh
26 elif [ -x /bin/sh ]; then
27 exec /bin/sh
28 elif [ -x /busybox/sh ]; then
29 exec /busybox/sh
30 else
31 echo shell not found
32 exit 1
33 fi
34 ' does not exist.
35 * Try:
36 Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
37 * Get more help at https://help.gradle.org
38 BUILD FAILED in 1s
Я собираю локальный «образ сборки» и отправляю его в репозиторий Gitlabs docker с помощью этих команд docker build -t registry.gitlab.com/x/project:java-build -f ./docker/build.dockerfile .
docker push registry.gitlab.com/x/project
структура файла - .gradle - docker - build.dockerfile - sr c
, и я вызываю команды сборки из root проекта
Мое понимание из это сообщение об ошибке означает, что gradle не создается должным образом, в результате чего в системе не отображаются файлы.
Я запустил конвейер с параметрами --debug и --stacktrack, установленными в чистой сборке gradle, и Я не увидел никакой дополнительной полезной информации.
Я думаю, что упускаю что-то довольно очевидное, но я не уверен, что это ...