如何解决获取X509:从JenkinsDind Agent与Docker注册表交谈时,由未知权限签署的证书
我有一个私人注册表,正在使用我自己的SSL证书。我似乎无法做的是让代理(Kubernetes pod模板)登录(或推送)到注册表,我花了一个多小时试图弄清这一切是如何粘合在一起的。
pipeline {
agent {
kubernetes {
label "saas-fwk-deploy-${cto.devops.jenkins.Utils.getTimestamp()}"
inheritFrom 'k8s-dind'
yaml """
spec:
containers:
- name: opstools
image: registry/tools:latest
workingDir: /home/jenkins
command:
- cat
tty: true
env:
- name: DOCKER_HOST
value: "tcp://127.0.0.1:2375"
securityContext:
allowPrivilegeEscalation: true
privileged: true
"""
}
}
options {
timeout(time: 12,unit: 'HOURS')
buildDiscarder(logRotator(daysToKeepStr: '7',artifactDaysToKeepStr: '0'))
skipDefaultCheckout()
disableConcurrentBuilds()
timestamps()
}
stages {
stage('deploy') {
steps {
container('opstools') {
sh "docker --version"
sh """
pwd
ls -al
mkdir -p ~/.docker/certs.d/harbor.net
curl -k -b cookie -o ~/.docker/certs.d/harbor.net/ca.crt https://saas2.cert.com/api/v1/pub/ingressca
cat ~/.docker/certs.d/harbor.net/ca.crt
docker info
docker login -u superadmin -p example harbor.net
"""
}
}
}
}
我收到此错误:
docker login -u superadmin -p example harbor.net
21:01:55 WARNING! Using --password via the CLI is insecure. Use --password-stdin.
21:01:55 Error response from daemon: Get https://harbor.net/v2/: x509: certificate signed by unknown authority
即使我将其位置更改为/etc/docker/certs.d / *
,也不会考虑该证书从本质上讲,我知道docker需要拥有我的CA证书,但是我无法弄清楚如何给代理(或代理正在使用的docker dind容器)。 (我可以登录到注册表并通常拉/推图像,所以我知道我的SSL证书很好)。
我在哪里/如何给docker我的ca证书?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。