如何在docker中创建文件?我正在尝试下面的代码,但它不起作用。如果我与docker shell分开执行bash -c [ -f /tmp/asdasdasd ]
,它会给我正确的结果。
Dockerfiletest :
FROM alpine:3.6
RUN apk update && apk add bash
搬运工-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)
答案 0 :(得分:2)
我相信你缺少运行命令的引号。 bash -c
只接受一个参数,而不是列表,因此您需要引用该行的其余部分以将其作为单个参数传递:
bash -c "[ -f /tmp/a ]"
要查看运行状况检查的结果,您可以运行:
docker inspect $container_id -f '{{ json .State.Health.Log }}' | jq .
答案 1 :(得分:0)
事实证明,除了缺少引号之外,我还应该通过-f
检查套接字是否存在
bash -c '[ -S /tmp/uwsgi.sock ]'
此外interval: 5s
可用于减少默认的5s间隔。