首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将spring-actuator与Spring-Boot默认Docker-Image生成器一起使用

将spring-actuator与Spring-Boot默认Docker-Image生成器一起使用
EN

Stack Overflow用户
提问于 2021-03-27 04:12:51
回答 2查看 263关注 0票数 1

我在Docker环境中使用Spring-Boot 2.4.4,该docker环境由docker-compose.yml文件管理,并使用portainer可视化。我正在使用Spring-Boot内置构建器(使用paketo-buildpack)构建我的Docker镜像

代码语言:javascript
运行
复制
mvn spring-boot:build-image

我想让我的Docker容器被弹簧执行器监控。所以我添加了maven依赖项,当我在本地运行我的应用程序并访问某个页面时,我得到了所需的结果:

代码语言:javascript
运行
复制
http://localhost:8080/actuator/health

由于我使用的是Spring-Boot内置Docker映像构建器,因此没有Dockerfile来添加healthpoint。当我在docker-compose.yml中添加健康检查时,找不到wget命令:

代码语言:javascript
运行
复制
    healthcheck:
      test: wget --spider --quiet 'http://localhost:8080/actuator/health/' || exit 1
      interval: 10s
      timeout: 3s
      retries: 10
      start_period: 10s

我做错了什么?我在网上找不到任何文档。我以为Spring-Boot能够自己检测到弹簧致动器,但我认为它不能。

EN

回答 2

Stack Overflow用户

发布于 2021-03-29 23:44:04

用于运行Spring Boot应用程序的基本映像中不包括wgetcurl命令。也许您可以挂载另一个工具卷:https://stackoverflow.com/a/65854305/8335251

或者,只需编写另一个轻量级java应用程序来请求健康执行器,将结果映射到退出代码中。然后将其打包到jar中,使用jar包在Spring Boot应用程序镜像的基础上构建另一个镜像。在此之后,可以使用java -jar命令运行健康检查。

票数 0
EN

Stack Overflow用户

发布于 2021-05-19 10:34:37

您可以切换打包容器镜像时使用的构建器。请参阅image customization settings here

默认构建器是paketobuildpacks/builder:base,它有一个不包含curlwget的运行镜像。您可以将构建器切换到paketobuildpacks/builder:full,您应该有curl (也可能是wget,我不太确定)。

这里的权衡是运行映像更大,因此构建的映像的大小将会增加。完整的图像有相当多的东西和重量在1G左右,相比之下,基础图像的重量约为100M。

Docker在下载层方面很聪明,所以如果你有50个应用基于相同的完整构建器图像,它不会导致50G的下载量。Docker (和其他容器运行时)只下载它还没有的层,所以额外的gig基本上是一次性下载的。最终,您必须确定拥有curl的便利性是否值得在图像中使用额外的大小。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66823723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档