gpt4 book ai didi

java - 本地开发最佳实践 : Java, Docker、Kubernetes

转载 作者:搜寻专家 更新时间:2023-10-31 20:16:54 25 4
gpt4 key购买 nike

我正在尝试找出在使用 Kubernetes 部署的 Docker 容器中使用 Java 的最终最佳实践在本地环境中或在开发代码时。在理想状态下,Java 开发人员应该能够像 python/javascript 开发人员一样快速移动,但我很难匹配(甚至接近)速度。

目前,我有一个工作的、手动部署的 k8 集群。我的 Java Spring 项目是在手动运行构建命令(mvn clean install)后由 maven 构建的,然后我运行一个脚本来制作图像,之后我运行一个脚本来运行 minkube(如果它尚未运行),最后我必须应用一个部署 list 文件(它将容器启动到 pod 中)。

我缺少的是:

  1. 所有这些都是手动完成的(在构建代码后有足够的空间来自动化构建图像的过程,并使用新图像更新 k8s)。
  2. 构建是手动指定的(Python 在代码保存时重新启动。据我所知,在 Java 世界中没有热重新加载)。
  3. 我还没有看到本地开发环境与云托管的 k8 集群之间的集成。理想情况下,开发人员会在本地进行测试,直到他们准备好部署到云端。当它们准备就绪时,单击一个按钮并从远程注册表中读取一个集群,该集群可以获取 docker 镜像更改并重新加载,这将是非常棒的。

可悲的是,Skaffold ,我很乐意使用的工具本身不能与 Java 一起使用。Java 开发人员是否使用另一种工具来使他们的本地部署超快并与 DUCK 语言(py、js)竞争?

最佳答案

您可以使用 docker-maven-plugin 直接从 maven 构建 docker 镜像.添加到您的 pom.xml:

<build>
<plugins>
...
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>VERSION GOES HERE</version>
<configuration>
<imageName>example</imageName>
<dockerDirectory>docker</dockerDirectory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
</plugin>
...
</plugins>
</build>

我不确切知道你的用例,但在你的开发机器上部署 k8 的集群可能有点过头了。您可以使用 Docker compose 测试您的 docker 镜像

关于java - 本地开发最佳实践 : Java, Docker、Kubernetes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52726266/

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