My Dockerfile使用以下命令启动应用程序
CMD ["/home/app/start-app.sh"]
start-app.sh包含以下内容,它将等待RabbitMQ服务器可用。对于使用docker-compose,k8s运行的应用程序,有没有更好的方法来实现这一点
while ! nc -z "$RABBITMQ_HOSTNAME" "$SPRING_RABBITMQ_PORT"; do sleep 10; done
我猜不是。尽管docker compose提供了depends_on
,但它只是按照依赖关系顺序启动容器。它并不确保特定的服务可用。docker文档以我无法更好的方式解释它:
等待数据库(例如)就绪的问题实际上只是分布式系统更大问题的一个子集。在生产过程中,数据库可能会变得不可用或随时移动主机。您的应用程序需要对这些类型的故障具有弹性。
若要处理此问题,请将应用程序设计为在发生故障后尝试重新建立到数据库的连接。如果应用程序重试连接,它最终可以连接到数据库。
我们的webstart应用程序(不是小程序)遇到了奇怪的启动问题。 启动应用程序会显示应用程序启动屏幕,但javaws进程会在不久后终止,不会在对话框、java控制台或日志文件中显示任何错误消息。javaws似乎只是在实际启动实际应用程序之前停止。无论用户尝试从桌面快捷方式还是从网页启动应用程序,都无关紧要。当从本地计算机使用javaw运行而无需webstart时,相同的应用程序可以正常工作。 应
问题内容: 有没有简单的方法来重新安装我的应用程序依赖的 所有 软件包(即它们在我的应用程序的node_modules文件夹中)? 问题答案: 我看到的最简单的方法是删除文件夹并执行。
问题内容: 通过不将数十个JAR依赖项包装到lib目录中,OSGi似乎具有一个小的可部署工件的巨大好处。但是,我找不到任何能告诉我一种简单,可靠的方式来将依赖项部署到容器的方法。例如,我有一个使用CXF和几个Spring子项目的应用程序。如果需要将此应用程序部署到新的Glassfish服务器上,那么最好的方法是确保安装所有依赖项? 我正在使用Maven, 似乎 可以使用某种方法来查看META-IN
问题内容: 我在某些设备(带有Android 7的Nexus 5x)上遇到非常奇怪的情况:当我清理其数据并卸载它,然后与Studio一起安装时,该应用并未统一,但它使用的是1月24日的数据!我在平板电脑上尝试了相同的步骤,但该应用程序没有数据。 我已经重复了很多次此过程,我清理了我的项目,多次对其进行了重建,并且始终以1月24日的数据(包括数据库和共享首选项)开始。 我什至尝试了adb shell
我希望基础映像 下载依赖项并仅在依赖项更改时重新生成,而第二个映像 将在代码更改时重新生成。但是,在 上,两个 maven 命令都会下载所有依赖项。我可能误解了堆叠的工作原理或在哪里复制什么。 我尝试过的:将第一个容器中的所有内容显式复制到第二个容器中:< code>COPY / /和各种更具体的< code>COPY目标,如< code>.m2,从maven基本映像构建第二个容器,如第一个容器,
我有一个Spring Boot应用程序,它有一些外部依赖(例如,项目之外的文件,需要存在,以便应用程序正确启动)。 和一系列其他例外。有没有一种方法可以恰当地做到这一点?