【问题标题】:How to push java docker image to private repo using gradle-docker-plugin?如何使用 gradle-docker-plugin 将 java docker 映像推送到私有仓库?
【发布时间】:2021-06-25 08:55:48
【问题描述】:

我正在尝试使用 gradle 将 docker 映像推送到私人仓库。 gradle-docker-plugin 正是这样做的。使用 docker-java-application 我可以构建一个图像,但我不能将它推送到我自己的存储库。

在调试日志中,我看到以下行:

[DEBUG] [com.github.dockerjava.core.command.PushImageResultCallback] ResponseItem(stream=null, status=The push refers to repository [docker.io/project-name/project-app], progressDetail=null, progress=null, id=null, from=null, time=null, errorDetail=null, error=null, aux=null)

以及越晚的破解错误:

> Could not push image: unauthorized: incorrect username or password

这是有道理的,因为我配置的帐户不是用于 docker.io,而是仅用于我自己的存储库。

我的 gradle 文件如下所示:

构建脚本:

buildscript {
    dependencies {
        classpath 'com.bmuschko:gradle-docker-plugin:7.0.1'
    }
    ...
}

build.gradle:

plugins {
    id 'java'
    id 'com.bmuschko.docker-java-application'
}
...
mainClassName = 'com.project.app.Main'
...
docker {
    javaApplication {
        baseImage = 'jre-11.0.11_9-alpine'
        ports = [8080]
        jvmArgs = ['-Xms256m', '-Xmx2048m']
    }
    registryCredentials {
        url = 'https://private.repository.example'
        username = 'user'
        password = 'password'
    }
}

我可以在本地构建和运行镜像,只是推送失败。这是为 docker-java-application 插件配置远程存储库的正确方法吗?

【问题讨论】:

    标签: java docker gradle


    【解决方案1】:

    你可以试试:

    docker login https://private.repository.example --username user --password password
    

    然后检查您的 /.docker/config.json 是否有条目:

    {
        "auths": {
                "https://index.docker.io/v1/": {},
                "https://private.repository.example" : {}
        },
        "credsStore": "desktop.exe"
    }
    

    之后 - 删除 "https://index.docker.io/v1/": {} 并重新启动 Docker。 它应该默认使用https://private.repository.example

    【讨论】:

    • 由于我正在配置 registryCredentials,因此我希望插件能够为我执行此操作。
    • 我知道了 :) 根据我的发现 - gradle-docker-plugin 加载 /.docker/config.json 并从那里获取默认存储库,registryCredentials.url 不起作用@987654321 @
    猜你喜欢
    • 2015-04-05
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 2018-04-22
    • 2016-06-12
    • 1970-01-01
    • 2018-09-28
    • 1970-01-01
    相关资源
    最近更新 更多