gpt4 book ai didi

Docker 检查文件是否存在于 healthcheck 中

转载 作者:行者123 更新时间:2023-12-02 18:09:40 26 4
gpt4 key购买 nike

我如何等待文件在 docker 中创建?我正在尝试下面的代码,但它不起作用。如果我与 docker shell 分开执行 bash -c [ -f/tmp/asdasdasd ],它会给我正确的结果。

Dockerfile 测试:

FROM alpine:3.6
RUN apk update && apk add bash

docker-compose.yml:

version: '2.1'
services:
testserv:
build:
context: .
dockerfile: ./Dockerfiletest
command:
bash -c "rm /tmp/a && sleep 5 && touch /tmp/a && sleep 100"
healthcheck:
# I tried adding '&& exit 1', '|| exit `' it doesn't work.
test: bash -c [ -f /tmp/a ]
timeout: 1s
retries: 20

docker-compose up + 等待 10s + docker ps:

: docker ps
STATUS
Up About a minute (health: starting)

最佳答案

我相信您在要运行的命令中缺少引号。 bash -c 只接受一个参数,而不是一个列表,因此您需要引用该行的其余部分以将其作为单个参数传递:

bash -c "[ -f /tmp/a ]"

要查看健康检查的结果,您可以运行:

docker inspect $container_id -f '{{ json .State.Health.Log }}' | jq .

关于Docker 检查文件是否存在于 healthcheck 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48357244/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com