ollama Add Basic Networking Tools to Docker Image for Health Checks

hfsqlsce  于 2个月前  发布在  Docker
关注(0)|答案(2)|浏览(37)

你好!是否可以将一个或两个网络命令包,如 pingnetcatcurl 包含在Docker镜像中?这将允许那些想要使用 docker compose 或类似工具查询健康检查端点的人,而无需创建自定义的 Dockerfile
我知道大家对于直接将 HEALTHCHECK 命令添加到Dockerfile中感到担忧,因为它不是Docker官方镜像中的标准命令。但是,至少有了这些包,任何想要为他们的容器设置健康检查的人都可以更容易地做到这一点。
如果你认为这是一个好主意,我很乐意为此打开一个PR。
谢谢!

n3schb8v

n3schb8v1#

可以在docker-compose文件中添加健康检查。我使用这个方法来检查各种不包含内建工具的Docker镜像的端点,只需为端口和模式设置HEALTH即可:

x-healthcheck: &healthcheck
  test: ["CMD-SHELL", "exec bash -c '
      for i in $${HEALTH-11434/:Ollama.is.running} ; do
        pat=$${i#*:} ;
        port=$${i%:*} ;
        path=$${port#*/} ;
        port=$${port%%/*} ;
        (exec 3<> /dev/tcp/localhost/$$port ;
        (echo GET /$$path HTTP/1.0 ; echo) >&3 ; cat <&3) | grep -q $$pat ||
          {
            [ $${RESTART-0} == 1 ] && { kill -s TERM -1 ; sleep 5 ; kill -s KILL -1 ; kill -s TERM 1 ; } ;
            exit 1 ;
          }
      done'"
    ]
  interval: 10s
  start_period: 10s

services:
  ollama:
    image: ollama/ollama
    healthcheck: *healthcheck
    environment:
      - HEALTH=11434/:Ollama.is.running

  litellm:
    image: litellm/litellm
    healthcheck: *healthcheck
    environment:
      - HEALTH=8000/health/liveliness:I.m.alive
a1o7rhls

a1o7rhls2#

你只需向/api/version发起一个GET请求。

相关问题