You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker Compose中为Krakend执行多条命令(含OpenAPI导出)

在Docker Compose中同时启动Krakend并执行OpenAPI导出命令

方案一:使用自定义启动脚本

  1. 在本地./krakend目录下创建启动脚本start_krakend.sh,内容如下:
#!/bin/sh
# 执行OpenAPI导出命令(按需调整参数,示例为导出到本地挂载目录)
krakend openapi export -c /etc/krakend/krakend.json -o /etc/krakend/openapi.json
# 启动Krakend服务
krakend run -d -c /etc/krakend/krakend.json
  1. 给脚本添加执行权限:
chmod +x ./krakend/start_krakend.sh
  1. 修改Docker Compose配置,将启动命令指向该脚本:
version: "3"
services:
  krakend_ce:
    image: devopsfaith/krakend:watch
    volumes:
      - ./krakend:/etc/krakend
    ports:
      - "9000:9000"
    command: ["/bin/sh", "/etc/krakend/start_krakend.sh"]

方案二:直接在command中串联命令

无需额外脚本,用sh -c直接组合两个命令:

version: "3"
services:
  krakend_ce:
    image: devopsfaith/krakend:watch
    volumes:
      - ./krakend:/etc/krakend
    ports:
      - "9000:9000"
    command: sh -c "krakend openapi export -c /etc/krakend/krakend.json -o /etc/krakend/openapi.json && krakend run -d -c /etc/krakend/krakend.json"

关键说明

  • 你示例中的krakend openapi export -h是帮助命令,实际导出需要指定配置文件(-c)和输出路径(-o),上面的配置已替换为常用导出参数,可根据需求修改。
  • 因为挂载了本地./krakend目录,导出的OpenAPI文件会同步到本地,方便后续使用。
  • 用&&串联命令时,只有导出命令执行成功才会启动Krakend;如果希望不管导出结果都启动服务,可将&&替换为;。

内容的提问来源于stack exchange,提问作者emoleumassi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 15:46:09