【发布时间】:2020-08-25 23:16:06
【问题描述】:
背景:
我有一个运行 docker 映像的项目(在生产中它将在 knative 中运行,但对于测试,docker/docker compose 是一个很好的第一步),作为我的 CI/CD 管道的一部分,我想运行验收测试反对形象。我将图像配置为在 docker 中运行,并且(黄瓜)验收测试作为 gradle 任务的一部分运行。我希望 gradle 测试等到图像旋转起来(由于 graalvm 提前编译,图像本身需要不到 0.02 秒的时间才能启动,但 gitlab 运行器可能很慢)。我已经连接了一个 wait-for-it.sh 脚本(https://gitlab.com/connorbutch/reading-comprehension/-/blob/5-implement-glue-code/wait-for-it.sh),它可以等待 localhost:8080(您可以通过执行以下命令来验证自己:docker run -i --rm -p 8080:8080 connorbutch/reading-comprehension-server-quarkus-impl & ./wait-for-it.sh localhost:8080 --timeout=10 --strict -- ./gradlew acceptanceTest),但我想拥有任务等待 localhost:8080/health/readiness,以下命令不起作用:docker run -i --rm -p 8080:8080 connorbutch/reading-comprehension-server-quarkus-impl & ./wait-for-it.sh localhost:8080/health/readiness --timeout=10 --strict -- ./gradlew acceptanceTest 需要注意的是应用程序最慢的启动时间为 0.02 秒,因此端点已启动并正常工作,这是我如何运行等待它的脚本的问题
关于如何输入值以等待它以便我让 wait-for-it.sh 测试包含斜杠的 url 的任何想法?或者,关于如何执行此排序的任何其他输入也很棒!
如果您想在本地运行,请从 (https://gitlab.com/connorbutch/reading-comprehension/-/tree/5-implement-glue-code) 克隆代码(唯一要求是要有 docker),执行 ./run-it.sh,然后使用上述命令时间> 谢谢, 康纳
【问题讨论】:
标签: linux docker shell docker-compose