芭蕾舞女演员:通过k8s插件构建图像并推送到gcr.io.

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了芭蕾舞女演员:通过k8s插件构建图像并推送到gcr.io.相关的知识,希望对你有一定的参考价值。

我正在使用一个简单的ballerina代码来构建我的程序(简单的hello world)和ballerinax/kubernetes注释。该服务正在成功编译,并可通过本地主机的特定绑定端口访问。

配置kubernetes部署时,我指定了图像构建和推送标志:

@kubernetes:Deployment {
    replicas: 2,
    name: "hello-deployment",
    image: "gcr.io/<gct-project-name>/hello-ballerina:0.0.2",
    imagePullPolicy: "always",
    buildImage: true,
    push: true
}

构建源代码时:

ballerina build hello.bal

这就是我得到的:

Compiling source
    hello.bal

Generating executable
    ./target/hello.balx
    @docker          - complete 3/3

    Run following command to start docker container:
    docker run -d -p 9090:9090 gcr.io/<gcr-project-name>/hello-ballerina:0.0.2

    @kubernetes:Service              - complete 1/1
    @kubernetes:Deployment           - complete 1/1
error [k8s plugin]: Unable to push docker image: unauthorized: You don't have the needed permissions to perform this operation, and you may have invalid credentials. To authenticate your request, follow the steps in: https://cloud.google.com/container-registry/docs/advanced-authentication

请注意,当我在本地计算机上通过docker手动推送它时,它可以找到并且新图像被推送。

我错过了什么?有没有办法通过kubernetes包告诉芭蕾舞女演员有关码头注册证书?

答案

Ballerina还不支持gcloud docker注册表,但它支持dockerhub。有关更多信息,请参阅sample6

基本上,您可以将docker注册表用户名和密码导出为环境变量。

请在https://github.com/ballerinax/kubernetes/issues创建一个问题来跟踪此问题。

另一答案

看起来像Container Registry的问题,您无法进行身份验证。

要对Container Registry进行身份验证,请使用gcloud作为Docker凭据帮助程序。为此,请运行以下命令:

gcloud auth configure-docker

您需要运行此命令一次以对Container Registry进行身份验证。我们强烈建议您尽可能使用此方法。它提供对项目资源的安全,短期访问。

您可以自己检查Container Registry Authentication Methods的步骤

以上是关于芭蕾舞女演员:通过k8s插件构建图像并推送到gcr.io.的主要内容,如果未能解决你的问题,请参考以下文章

从 kubernetes 插件 / jenkins 中的 gcr 拉取 docker 图像的问题

AWS ECR Repository - 如何从一个账户复制图像并推送到另一个账户

将Go语言编写的HttpServer部署到Docker并推送到DockerHub

将Go语言编写的HttpServer部署到Docker并推送到DockerHub

构建阿里云海外镜像站

黑天鹅-简记