在docker-compose文件中,是否可以等待容器启动然后打印状态?
例如sleep 10 && echo started mysql on http://${HOST}:${PORT}
Dockerfile
有一个run命令,但在compose文件中没有这样的东西。我怎样才能做到这一点?
1
投票
投票
使用docker-compose
,就像常规的docker run [...]
一样,你可以指定entrypoint
(参见here)和command
(参见here)。
但是,在您的情况下,我要做的是根据您首选的MySQL图像构建一个自己的Docker镜像,并将COPY
作为一个简单的入口点脚本构建到您想要的图像中,例如:
#!/bin/sh
sleep 10
[command to run MySQL]
echo "Started MySQL on xyz"
然后在Dockerfile中将此脚本指定为ENTRYPOINT
。
0
投票
投票
最好的方法是将其添加到撰写文件中:
print-status:
image: busybox
env_file: .env
command: "sh -c 'sleep 10 && echo \"http://localhost:${PORT}\"'"
depends_on:
- mysql