dea*_*908 5 docker docker-compose
如何等待 docker 中创建文件?我正在尝试下面的代码,但它不起作用。如果我bash -c [ -f /tmp/asdasdasd ]与 docker shell 分开执行,它会给出正确的结果。
Dockerfile测试:
FROM alpine:3.6
RUN apk update && apk add bash
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
docker-compose up+ 等待 10 秒 + docker ps:
: docker ps
STATUS
Up About a minute (health: starting)
Run Code Online (Sandbox Code Playgroud)
我相信您缺少运行命令的引号。bash -c只接受一个参数,而不是列表,因此您需要引用该行的其余部分以将其作为单个参数传递:
bash -c "[ -f /tmp/a ]"
Run Code Online (Sandbox Code Playgroud)
要查看健康检查的结果,您可以运行:
docker inspect $container_id -f '{{ json .State.Health.Log }}' | jq .
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12413 次 |
| 最近记录: |