Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring boot 带有两个jar文件的Docker容器,按需运行,而不是作为入口点_Spring Boot_Docker_Kubernetes - Fatal编程技术网

Spring boot 带有两个jar文件的Docker容器,按需运行,而不是作为入口点

Spring boot 带有两个jar文件的Docker容器,按需运行,而不是作为入口点,spring-boot,docker,kubernetes,Spring Boot,Docker,Kubernetes,在我的用例中,我希望容器中有两个jar文件。在典型的docker图像中,我看到一个入口点,它基本上启动jar文件。在我的情况下,直到容器在K8s服务中使用时,我才知道要启动哪个程序。在我的示例中,我有一个应用DDL的jar文件,第二个jar文件是我的应用程序。我希望k8s首先部署我的DDL应用程序,完成后,它将从另一个jar部署我的spring boot应用程序,然后从同一个容器部署。在这里,我不能为我的容器提供入口点,而是需要使用yaml文件中的命令和参数运行特定的jar文件。在我遇到的所有示

在我的用例中,我希望容器中有两个jar文件。在典型的docker图像中,我看到一个入口点,它基本上启动jar文件。在我的情况下,直到容器在K8s服务中使用时,我才知道要启动哪个程序。在我的示例中,我有一个应用DDL的jar文件,第二个jar文件是我的应用程序。我希望k8s首先部署我的DDL应用程序,完成后,它将从另一个jar部署我的spring boot应用程序,然后从同一个容器部署。在这里,我不能为我的容器提供入口点,而是需要使用yaml文件中的命令和参数运行特定的jar文件。在我遇到的所有示例中,我看到了一个用于启动java进程的入口点


这里与这里提到的帖子的区别是-我希望容器有两个jar文件,当我通过k8s加载容器时,我想决定从命令提示符运行哪个程序。我正在探索的一个选项是使用参数化的shell脚本,这样我就可以将jar名称作为参数传递,shell将运行java-jar。我会在这里更新,一旦我发现一些东西

解决方案更新 在docker文件中添加两个JAR,并有一个使用参数的shell脚本。使用下面的示例从K8s yaml文件调用正确的jar文件

规格:容器: -图片:URL imagePullPolicy:始终名称:图像名称 命令:[/bin/sh] args:[-c,/home/md/javaCommand.sh jarName.jar] 端口:-集装箱端口:8080
名称:http

尝试在Init容器中添加per requisites,同时将其部署到kubernetes,并在常规容器中放置应用程序,它将首先初始化DDLs容器,然后可以执行以下应用程序容器。

在将其部署到kubernetes时,尝试在Init容器中添加per必备项,并在常规容器中放置应用程序,它将首先初始化DDLs容器,然后可以执行以下应用程序容器。

docker映像启动时不必运行java jar,它必须运行一些东西


您可以简单地将其设置为一个bash脚本,它将做出这些决定并启动您喜欢的jar

docker映像启动时不必运行java jar,它必须运行一些东西


您可以简单地将其设置为一个bash脚本,该脚本将做出这些决定并启动您喜欢的jar

您是否考虑过使用bash脚本作为入口点,并在运行时将jar文件作为参数传递给该脚本?您是否可以构建两个单独的映像,每个jar文件一个?或者,在你的pod规范中指定要运行的命令?这里可能与这里提到的帖子的不同之处是-我想让容器有两个jar文件,当我通过k8s加载容器时,我想决定从命令提示符下运行哪个程序。我正在探索的一个选项是使用参数化的shell脚本,这样我就可以将jar名称作为参数传递,shell将运行java-jar。我会在这里更新,一旦我发现了一些东西,你是否考虑过使用bash脚本作为你的入口点,并在运行时将jar文件作为参数传递给该脚本?你能构建两个单独的映像,每个jar文件一个吗?或者,在你的pod规范中指定要运行的命令?这里可能与这里提到的帖子的不同之处是-我想让容器有两个jar文件,当我通过k8s加载容器时,我想决定从命令提示符下运行哪个程序。我正在探索的一个选项是使用参数化的shell脚本,这样我就可以将jar名称作为参数传递,shell将运行java-jar。一旦我发现了一些东西,我将在这里更新我们在docker映像中放置了两个jar文件,并且我们还有一个带有参数的shell脚本。使用yaml文件通过将其作为命令传递来调用相应的JAR文件我们在docker映像中放置了两个JAR文件,并且我们还有一个带有参数的shell脚本。使用yaml文件通过将其作为命令传递来调用相应的JAR文件