Запуск s sh -агента в docker на Дженкинсе не работает - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь использовать контейнер в моем конвейере jenkins, но я не могу получить агент sh для работы внутри него. Я на v1.19 плагина, когда я запускаю приведенный ниже код, я получаю

Ошибка проверки ключа хоста. Неустранимый: Не удалось прочитать из удаленного хранилища.

Пожалуйста, убедитесь, что у вас есть правильные права доступа, и хранилище существует.

Однако, если я запускаю код извне образа, он работает идеально, доказывая, что у пользователя есть правильные права доступа.

node('nodeName'){
    cleanWs()    
    ws("short"){
        withDockerRegistry([credentialsId: 'token', url: "https://private.repo.com"]) {
            docker.image("img:1.0.0").inside("-u root:root --network=host") {
                sshagent(credentials: ["bitbucket_token"]) {
                    sh "mkdir ~/.ssh"
                    sh 'ssh-keyscan bitbucket.company.com >> ~/.ssh/known_hosts'
                    sh 'git clone ssh://git@bitbucket.company.com:PORT/repo.git'
                }
            }
        }
    }
}

Вот вывод:

[Pipeline] sshagent
[ssh-agent] Using credentials jenkins (bitbucket_token)
[ssh-agent] Looking for ssh-agent implementation...
[ssh-agent]   Exec ssh-agent (binary ssh-agent on a remote machine)
$ docker exec abcdef123456 ssh-agent
SSH_AUTH_SOCK=/tmp/ssh-qwertyu/agent.15
SSH_AGENT_PID=22
Running ssh-add (command line suppressed)
Identity added: /home/jenkins/short@tmp/private_key_8675309.key (/home/jenkins/short@tmp/private_key_8675309.key)
[ssh-agent] Started.
[Pipeline] {
[Pipeline] sh
+ mkdir /root/.ssh
[Pipeline] sh
+ ssh-keyscan bitbucket.company.com
# bitbucket.company.com:22 SSH-2.0-OpenSSH_6.6.1
# bitbucket.company.com:22 SSH-2.0-OpenSSH_6.6.1
# bitbucket.company.com:22 SSH-2.0-OpenSSH_6.6.1
[Pipeline] sh
+ git clone ssh://git@bitbucket.company.com:PORT/repo.git
Cloning into 'repo'...
Host key verification failed.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
[Pipeline] }
$ docker exec --env ******** --env ******** abcdef123456 ssh-agent -k
unset SSH_AUTH_SOCK;
unset SSH_AGENT_PID;
echo Agent pid 22 killed;
[ssh-agent] Stopped.
[Pipeline] // sshagent

Я полностью озадачен этим

...