反正我知道docker容器中命令何时完成?我创建了一个Docker容器,并能够通过docker exec将命令从本地发送到Docker容器中
到目前为止,在我的bash脚本中,我正在使用sleep等待docker容器中的“ cd root:npm install”命令完成。如果我没有睡眠,则将npm install发送到docker容器后立即打印完成。如何npm install
在docker容器中完成后才能打印出睡眠?
docker exec -d <docker container name> bash -c "cd root;npm install"
sleep 100
echo "done"
答案 0 :(得分:1)
如果要使其在前台运行(-d
标志),请不要在后台运行该命令:
docker exec <docker container name> bash -c "cd root;npm install"
echo "done"
答案 1 :(得分:0)
将其作为后台进程&
运行,然后为其wait
运行:
docker exec -d <docker container name> bash -c "cd root;npm install" &
wait
echo "done"
答案 2 :(得分:0)
如果省略-d
(分离),docker exec
仅在完成后(而不是立即)返回,因此不需要wait
。