gpt4 book ai didi

docker - ssh-agent 不在 jenkins 管道上工作

转载 作者:行者123 更新时间:2023-12-02 18:18:05 25 4
gpt4 key购买 nike

我是新手,正在尝试为我的 hello world 响应式(Reactive) spring 项目实现 CI/CD。将镜像发布到 docker repo 后,下一步是连接到 aws ec2 并运行创建的镜像。我已经安装了 ssh agen 插件,并在 Mangejenkins-> 配置系统-> ssh 客户端中配置的 ssh 连接中进行了测试。

我的系统环境变量也有 path=C:\Windows\System32\OpenSSH\ssh-agent.exe

在最后一步我得到:

Could not find ssh-agent: IOException: Cannot run program "ssh-agent": CreateProcess error=2, The system cannot find the file specified
Check if ssh-agent is installed and in PATH
[ssh-agent] FATAL: Could not find a suitable ssh-agent provider

我的 Pipelien 代码:

pipeline {
agent any
tools {
maven 'maven'
jdk 'jdk1.8'
}
environment {
registry ="my-registry"
registryCredential=credentials('docker-credentials')
}
stages {
stage('SCM') {
steps {
git branch: 'master',
credentialsId: 'JenkinsGitlab',
url:'https://www.gitlab.com/my-repo/panda-app'
}
}
stage('Build') {
steps {
bat 'mvn clean package spring-boot:repackage'
}
}
stage('Dockerize') {
steps {
bat "docker build -t ${registry}:${BUILD_NUMBER} ."
}

}
stage('Docker Login') {
steps{
bat "docker login -u ${registryCredential_USR} -p ${registryCredential_PSW}"
}
}
stage('Release to Docker hub') {
steps{
bat "docker push ${registry}:${BUILD_NUMBER}"
}
}
stage('Deploy to AWS') {
steps {
sshagent(['panda-ec2']) {
bat "ssh -o StrictHostKeyChecking=no ubuntu@my-aws-host sudo docker run -p 8080:8080 ${registry}:${BUILD_NUMBER}"
}
}
}

}}

最佳答案

Windows内置的SSH-agent与Jenkins SSH-Agent插件不兼容。

我正在使用 Git 安装中的 SSH 代理。确保在任何其他路径之前插入 Git ssh-agent.exe 的目录(!)路径,以防止使用 Windows SSH 代理。

对于 Windows 安装的默认 Git,您可以像这样设置 PATH 环境变量:

path=c:\Program Files\Git\usr\bin;%path%

对我来说,在 Jenkins UI 中设置环境变量是行不通的。我通过设置应用程序添加了它。这样做时,请确保将其插入“%SystemRoot%\system32\OpenSSH”之前。

关于docker - ssh-agent 不在 jenkins 管道上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61718761/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com