将图像从 Jenkins 推送到 GCR

时间:2021-07-06 20:47:12

标签: windows docker jenkins google-cloud-platform

我正在尝试以一种更有效的方式使用 Jenkins 在谷歌云平台中部署我的应用程序。

我无法让 jenkins 将我的 docker 映像推送到我在 GCP 上的容器注册表。

它总是说我没有推送权限。我在 Windows 机器上。但是当我在我的 cmd 窗口上执行 push 命令时,它可以工作。我会拿出一些证据:

这是我的本地 cmd: enter image description here

这是我的詹金斯。 enter image description here

我已经运行了所有方法来从这个链接 https://cloud.google.com/container-registry/docs/advanced-authentication 获取我的身份验证,它们在我的本地工作正常,但在 jenkins 中却没有。

这在我的管道中:

def versionImage = '1.0.4'
def applicationName = 'limark-users'
def namespace = 'limark-users'
def projectGCP = 'limark-317200'

pipeline {
    agent any

    stages {
        stage('Build') {
            steps {
                echo 'Inicia construcción del proyecto...'
                sh './mvnw clean install -DskipTests'
                echo 'Armando la imagen para subir a Google Cloud Platform'
                sh "docker build -t  gcr.io/${projectGCP}/${applicationName}:${versionImage}${env.BUILD_NUMBER} ."
            }
        }
        stage('Test') {
            steps {
                echo 'Testing..'
            }
        }
        stage('Push a GCP') {
            steps {
                echo 'Inicia el envío de la imagen al Container Registry...'
                sh "docker push gcr.io/${projectGCP}/${applicationName}:${versionImage}${env.BUILD_NUMBER}"
            }
        }
        stage('Deploy') {
            steps {
                echo 'Comienza desplegado en desarrollo...'
                echo 'Se crea el namespace si no existe'
                sh "kubectl get ns ${namespace} || kubectl create ns ${namespace}"
                echo 'Create or update resources'
                sh "kubectl --namespace=${namespace} apply -f deployment.yaml"
            }
        }
    }
}

我也安装了一些插件,但它们的效果只出现在自由式项目中。

请帮助我我不知道出了什么问题如果需要更多信息请询问我会分享它。

谢谢大家

0 个答案:

没有答案