Я настраиваю конвейер Jenkins, который извлекает сценарий из SCM. Однако во время выполнения конвейера возникает ошибка. Конвейер настроен для работы внутри контейнера Docker с установленными Jenkins и Git. Вот подробности:
Obtained Jenkinsfile from git https://github.com/Sidharth-Singh10/testscore
[Pipeline] Start of Pipeline
[Pipeline] node
Running on Jenkins in /var/jenkins_home/workspace/trail2
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
> git rev-parse --resolve-git-dir /var/jenkins_home/workspace/trail2/.git # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url https://github.com/Sidharth-Singh10/testscore # timeout=10
Fetching upstream changes from https://github.com/Sidharth-Singh10/testscore
> git --version # timeout=10
> git --version # 'git version 2.39.2'
> git fetch --tags --force --progress -- https://github.com/Sidharth-Singh10/testscore +refs/heads/*:refs/remotes/origin/* # timeout=10
> git rev-parse refs/remotes/origin/main^{commit} # timeout=10
Checking out Revision 1f42c4a68d6dce1797bc27aaf709e61118dd74b3 (refs/remotes/origin/main)
> git config core.sparsecheckout # timeout=10
> git checkout -f 1f42c4a68d6dce1797bc27aaf709e61118dd74b3 # timeout=10
Commit message: "Create Jenkinsfile"
First time build. Skipping changelog.
Дженкинсфайл:
pipeline {
agent any
environment {
DOCKER_IMAGE = 'sidharthsingh7/ss_backend'
DOCKER_TAG = "0.0.1.RELEASE"
}
stages {
stage('Checkout') {
steps {
git scm
}
}
stage('Build') {
steps {
script {
sh 'docker build -t $DOCKER_IMAGE:$DOCKER_TAG .'
}
}
}
stage('Test') {
steps {
script {
sh 'docker run --rm $DOCKER_IMAGE:$DOCKER_TAG npm test'
}
}
}
stage('Push to Docker Hub') {
steps {
script {
sh 'echo $DOCKERHUB_CREDENTIALS_PSW | docker login -u $DOCKERHUB_CREDENTIALS_USR --password-stdin'
sh 'docker push $DOCKER_IMAGE:$DOCKER_TAG'
}
}
}
}
}
Среда:
Jenkins is running in a Docker container.
The Git plugin is installed and up to date.
Git version is 2.39.2.
Проблема: Конвейер завершается с ошибкой с сообщением: «Выбранная установка Git не существует. Используется значение по умолчанию. Рекомендуемый инструмент git: НЕТ».
Вопросы:
Why is Jenkins unable to recognize the Git installation?
How can I resolve the issue and ensure Jenkins uses the installed Git version?
Шаги, которые я пробовал:
Ensured the Git plugin is installed.
Verified Git is installed and accessible within the Docker container (git --version returns 2.39.2).
Checked Jenkins configuration for Git installation paths.
Любая помощь или руководство будут очень признательны!
Спасибо.
Журнал Selected Git installation does not exist. Using Default. The recommended git tool is: NONE.
— это не ошибка, а просто предупреждение.
Доказательством является то, что после этого сообщения выполнение продолжается, и другие команды git выполняются без ошибок:
Если git не существует, журнал будет таким:
Чтобы проверить, существует ли git, вы можете перечислить клонированные файлы после клонирования и перед сборкой с помощью команды ls -la
:
pipeline {
agent any
environment {
DOCKER_IMAGE = 'sidharthsingh7/ss_backend'
DOCKER_TAG = "0.0.1.RELEASE"
}
stages {
stage('Checkout') {
steps {
git scm
}
}
stage('Validate') {
steps {
script {
sh 'ls -la'
}
}
}
Если вы видите свою папку и файлы в журнале, значит, git уже установлен и работает.
Любая другая ошибка будет по другим причинам, без git
Используя учетные данные администратора, перейдите в раздел администрирования и выберите расположение двоичного файла git.