docker-compose为krakend运行多个命令

zqry0prt  于 2023-11-17  发布在  Docker
关注(0)|答案(2)|浏览(130)

如何运行多个命令。我尝试运行krakend并导出openapi文档。

version: "3"
services:
  krakend_ce:
    image: devopsfaith/krakend:watch
    volumes:
      - ./krakend:/etc/krakend
    ports:
      - "9000:9000"
    command: ["run", "-d", "-c", "/etc/krakend/krakend.json"]
    # how to run krakend openapi export -h

字符串
我想在容器启动后krakend openapi export -h

wrrgggsh

wrrgggsh1#

根据他们的Dockerfile from here判断,他们设置了ENTRYPOINT ["/entrypoint.sh"]CMD ["krakend" "run" "-c" "/etc/krakend/krakend.json"]
你需要做的是:
1.将入口点设置为/bin/bash
1.创建一个新的bash文件来运行多个命令。类似于:

#!/bin/bash
/entrypoint.sh krakend run -c /etc/krakend/krakend.json
# I'm not sure if it runs in foreground or background. For background you can use nohup:
#nohup /entrypoint.sh krakend run -c /etc/krakend/krakend.json &
/entrypoint.sh krakend openapi export -h

字符串
1.将文件Map到容器中。
1.设置cmd以使用新文件。
我会为此构建一个自定义的Docker镜像,但在docker-compose.yml中设置它也是可行的。

version: "3"
services:
  krakend_ce:
    image: devopsfaith/krakend:watch
    volumes:
      - ./krakend:/etc/krakend
      - ./your-custom-file.sh:/path/to/your/file.sh
    ports:
      - "9000:9000"
    entrypoint: /bin/bash
    command: /path/to/your/file.sh

bzzcjhmw

bzzcjhmw2#

您不应该使用watch标记来运行多个命令,因为它会监视配置文件的更改,并重新启动服务。
如果您使用任何其他版本(而不是watch),则可以运行sh -c 'your commands; command2'命令而不会出现问题。

相关问题