【Docker系列】如何在容器启动完成后执行curl
        【摘要】 在服务启动完成后执行 curl 命令可以通过 Docker 的 depends_on 和 healthcheck 配置来实现。虽然 depends_on 只控制容器启动的顺序,并不保证依赖的容器就绪,但结合 healthcheck 可以确保在服务完全启动后再执行 curl。下面是一个示例步骤:添加 healthcheck:在你的 Docker Compose 文件中,为 test-flex-...
    
    
    
    在服务启动完成后执行 curl 命令可以通过 Docker 的 depends_on 和 healthcheck 配置来实现。虽然 depends_on 只控制容器启动的顺序,并不保证依赖的容器就绪,但结合 healthcheck 可以确保在服务完全启动后再执行 curl。

下面是一个示例步骤:
- 
添加 healthcheck:在你的 Docker Compose 文件中,为 test-flex-flow添加healthcheck。
- 
使用 exec或command执行curl:可以使用 Docker 的exec命令在容器内执行curl,或者在容器启动后执行一个脚本。
以下是一个示例:
version: "3.8"
services:
  test-flex-flow:
    container_name: test-flex-flow
    image: ${FASTAGI_FLEX_FLOW_IMAGE:-deploy.test.com/console-tag/test-flex-flow:v1.8.0}
    ports:
      - "${EXPOSE_FLEX_FLOW_PORT:-5001}:5001"
    restart: always
    privileged: true
    environment:
      MODE: "api"
      CONSOLE_API_URL: "https://${EXPOSE_SERVER_IP}:${EXPOSE_FLEX_FLOW_PORT:-5001}"
      SERVICE_API_URL: "https://${EXPOSE_SERVER_IP}:${EXPOSE_FLEX_FLOW_PORT:-5001}"
      OPENAI_API_KEY: "xxxxx"
    volumes:
      - ./volumes/data-gym-cache:/tmp/data-gym-cache
      - ./server/flex-flow/storage:/app/api/storage
      - ./server/flex-flow/env.properties:/app/api/.env
      - ./server/flex-flow/logs:/flex-flow/logs
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:5001/console/api/health"]
      interval: 30s
      timeout: 10s
      retries: 5
    command: >
      sh -c "
      while ! curl -s http://localhost:3001/console/api/health; do sleep 5; done &&
      curl -X POST 'http://localhost:3001/console/api/setup' \
           -H 'Content-Type: application/json' \
           --data-raw '{\"email\":\"admin@test.com\",\"name\":\"admin@test.com\",\"password\":\"admin123\"}'"

在这个例子中:
- healthcheck确保容器启动后能够成功响应健康检查。
- command将等待服务完全启动并能够响应,然后执行- curl命令进行设置。
这样配置后,容器启动完成后会自动执行你需要的 curl 命令。
            【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
                cloudbbs@huaweicloud.com
                
            
        
        
        
        
        
        
        - 点赞
- 收藏
- 关注作者
 
             
           
评论(0)