【问题标题】:Push the image from jenkins server to the gke as a deployment将图像从 jenkins 服务器推送到 gke 作为部署
【发布时间】:2021-02-02 01:33:29
【问题描述】:

我在 Ubuntu VM 中使用 Jenkins 从 Dockerfile 创建了一个 LAMP 映像。现在我想将 LAMP 映像推送到 gcr.io,并且还想使用该 LAMP 映像将 Nginx pod 部署到项目上的 GKE 集群。

图:1

我使用谷歌Kubernetes引擎插件连接集群,如上图:1。我不明白我需要如何为上面的图片定义 Kubernetes Manifests。构建配置时出现以下错误:

tagged gcr.io/xxx-xxx-xxx/lamp-stack:v0
FATAL: /var/lib/jenkins/workspace/LAMP/test.yaml
java.nio.file.NoSuchFileException: /var/lib/jenkins/workspace/LAMP/test.yaml
    at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
    at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
    at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:370)
    at java.base/java.nio.file.Files.newByteChannel(Files.java:421)
    at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
    at java.base/java.nio.file.Files.newInputStream(Files.java:155)
    at hudson.FilePath.newInputStreamDenyingSymlinkAsNeeded(FilePath.java:2109)
    at hudson.FilePath.read(FilePath.java:2094)
    at hudson.FilePath.read(FilePath.java:2086)
    at com.google.jenkins.plugins.k8sengine.Manifests.loadFile(Manifests.java:192)
    at com.google.jenkins.plugins.k8sengine.Manifests.<init>(Manifests.java:155)
    at com.google.jenkins.plugins.k8sengine.Manifests.<init>(Manifests.java:149)
    at com.google.jenkins.plugins.k8sengine.Manifests.fromFile(Manifests.java:173)
    at com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilder.addMetricsLabel(KubernetesEngineBuilder.java:300)
    at com.google.jenkins.plugins.k8sengine.KubernetesEngineBuilder.perform(KubernetesEngineBuilder.java:266)
    at jenkins.tasks.SimpleBuildStep.perform(SimpleBuildStep.java:123)
    at hudson.tasks.BuildStepCompatibilityLayer.perform(BuildStepCompatibilityLayer.java:80)
    at hudson.tasks.BuildStepMonitor$3.perform(BuildStepMonitor.java:45)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:804)
    at hudson.model.Build$BuildExecution.build(Build.java:197)
    at hudson.model.Build$BuildExecution.doRun(Build.java:163)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:514)
    at hudson.model.Run.execute(Run.java:1907)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:43)
    at hudson.model.ResourceController.execute(ResourceController.java:97)
    at hudson.model.Executor.run(Executor.java:429)
Finished: FAILURE

【问题讨论】:

    标签: docker jenkins kubernetes google-kubernetes-engine


    【解决方案1】:

    您收到异常 java.nio.file.NoSuchFileException,因为 Jenkins 是一个基于 Java 的自包含程序。

    当试图访问一个不存在的文件时会抛出这个错误,在这种情况下是/var/lib/jenkins/workspace/LAMP/test.yaml。您必须确保该文件确实存在于该路径中。

    您可以查看link,了解有关如何在 Kubernetes Engine 上使用 Jenkins 的更多信息。

    要将映像添加到 Container Registry,您必须将 docker tagdocker push 映像添加到 gcr.io 主机名。您可以在documentation 中找到操作方法。

    【讨论】:

      猜你喜欢
      • 2016-04-18
      • 2011-11-10
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-12
      • 2020-04-14
      • 1970-01-01
      相关资源
      最近更新 更多