Docker Artifactory插件代理导致/v1/\u ping:坏网关
当我按照使用说明操作时,为什么会出现Docker Artifactory插件代理导致/v1/\u ping:坏网关,docker,jenkins-plugins,artifactory,Docker,Jenkins Plugins,Artifactory,当我按照使用说明操作时,为什么会出现/v1/\u ping:Bad Gateway错误 jenkins 2.60.3和Artifactory插件2.12.2 在端口9999上为Docker映像启用生成信息代理 jenkins/var/lib/jenkins/secrets/jfrog/certs/jfrog.proxy.crt添加到jenkins主机和从机上的$JAVA_HOME/jre/lib/security/cacerts jfrog nginx自签名证书添加到jenkins master
/v1/\u ping:Bad Gateway
错误
在端口9999上为Docker映像启用生成信息代理
/var/lib/jenkins/secrets/jfrog/certs/jfrog.proxy.crt
添加到jenkins主机和从机上的$JAVA_HOME/jre/lib/security/cacerts/etc/systemd/system/docker.service.d/http proxy.conf
包含以下内容,与测试没有区别
[服务]
Environment=“HTTP\u PROXY=”
[服务]
Environment=“HTTPS\u PROXY=”docker登录127.0.0.1:9999
)导致com.github.dockerjava.api.exception.BadRequestException:对URI的错误请求:/images/artifactory:/hello world:latest/json
SEVERE: (DISCONNECTED) [id: ..., L:0.0.0.0/0.0.0.0:... ! R:artifactory/...:5000]:
Caught an exception on ProxyToServerConnection
io.netty.handler.codec.DecoderException:
javax.net.ssl.SSLHandshakeException: General SSLEngine problem
...
Caused by: sun.security.validator.ValidatorException: PKIX path building
failed: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
我的虚拟repo,当我不使用jenkins代理时,它的远程和本地工作,但根据插件文档,我需要jenkins代理来获取CI/CD促销所需的构建信息。如果jenkins不使用该证书文件,则将证书添加到cacerts的效果会稍差一些。我不确定将证书添加到商店是否需要重新启动n詹金斯,但tomcat似乎确实如此,所以詹金斯可能就是这样工作的
/etc/systemd/system/docker.service.d/http proxy.conf
http\u proxy,然后转到实际的工件主机时转到jenkins proxy。应该在存储中找到所需的密钥,这样ssl握手就可以了,并且使用了v2 api。如果没有,您将在jenkins.log中看到错误
node("docker-experiments") {
withCredentials([usernamePassword(
credentialsId: 'artifactory.jenkins.user',
passwordVariable: 'ARTIFACTORY_PASSWORD',
usernameVariable: 'ARTIFACTORY_USER')]) {
sh "uname -a "
def registry="artifactory:5000"
def tag="${registry}/hello-world:${BUILD_NUMBER}-shelltest"
stage('login') {
sh "docker login ${registry} -u ${ARTIFACTORY_USER} -p ${ARTIFACTORY_PASSWORD}"
}
stage('pull and tag') {
sh "docker pull hello-world"
sh "docker tag hello-world:latest ${tag}"
}
stage('push') {
sh "docker push ${tag}"
}
}
}
node("docker-experiments") {
withCredentials([usernamePassword(
credentialsId: 'artifactory.jenkins.user',
passwordVariable: 'ARTIFACTORY_PASSWORD',
usernameVariable: 'ARTIFACTORY_USER')]) {
def server = Artifactory.server "artifactory01"
def artDocker = Artifactory.docker(username: ARTIFACTORY_USER,
password: ARTIFACTORY_PASSWORD)
def registry="artifactory:5000"
def tag="${registry}/hello-world:${BUILD_NUMBER}-artifactoryTest"
def dockerInfo
stage('pull and tag') {
sh "docker tag hello-world:latest ${tag}"
}
stage('push') {
dockerInfo = artDocker.push "${tag}", "docker-local"
}
stage('publish') {
server.publishBuildInfo(dockerInfo)
}
}
}