0

独自の SSL 証明書を使用するプライベート レジストリがあります。私ができないように見えるのは、エージェント (Kubernetes ポッド テンプレート) をレジストリにログイン (またはプッシュ) させることです。

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 証明書を与える場所/方法は?

4

0 に答える 0