gpt4 book ai didi

java - Kubernetes 无法通过 Github 从 Docker hub 部署简单镜像

转载 作者:行者123 更新时间:2023-12-01 17:45:42 24 4
gpt4 key购买 nike

我对这类东西确实很陌生,对 Kubernetes 和 Docker 很陌生,但在 Java 上已经有了一些经验。

我尝试通过将 Docker Hub 连接到 GitHub 来使用它。

在我的 Git-hub 上只有 2 个代码:

  1. Dockerfile
  2. 简单的 hello world Java 代码。

每次我在 Kubernetes 上运行它并使用 kubectl get pods 检查它时,我总是得到 CrashLoopBackOff。

我不明白出了什么问题,我已经检查了代码并尝试在 Docker 上运行它,它工作了,它打印出了 hello world。但在 Kubernetes 上不行。

这是 Dockerfile 上的代码

FROM openjdk:8
COPY helloworld.java .
RUN javac helloworld.java
ENTRYPOINT ["java", "helloworld"]

这是简单的 helloworld java 上的代码

public class helloworld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

我的期望是:当我在 Kubernetes 上运行它时,我希望它说它已经准备好了,我可以将它部署到 IP 并显示简单的 hello world。

最佳答案

由于您没有指定如何执行它,我假设您一直在使用 kubectl run (默认情况下创建部署)或定义部署的 list 。如果是这样,那么CrashLoopBackOff是预期的,因为 deployments适用于长时间运行的进程。你的Java代码不是长时间运行的。它打印一些东西然后退出,也就是说,那里没有无限循环。

所以要么做 System.out.println在循环中(中间有 sleep ?)或使用运行命令或用于一次性执行的工作负载类型(例如 jobs )。

顺便说一句,即使进行了部署,您仍然应该能够使用 kubectl logs查看第一次执行的输出。

关于java - Kubernetes 无法通过 Github 从 Docker hub 部署简单镜像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55559489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com