bash - 从 docker 容器获取命令执行结果
问题描述
无论如何让我知道命令何时在 docker 容器内完成?到目前为止,我已经创建了一个 docker 容器,并且能够通过 docker exec 在我的 bash 脚本中将命令从我的本地发送到 docker 容器中,我正在使用 sleep 等待 docker 容器内的“cd root: npm install”命令完成。如果我没有睡眠,在 npm install 发送到 docker 容器后会立即打印出 done。我如何才能删除睡眠,所以只有在npm install
docker 容器内完成后才会打印出来?
docker exec -d <docker container name> bash -c "cd root;npm install"
sleep 100
echo "done"
解决方案
如果要使其在前台(-d
标志)运行,请不要将该命令置于后台:
docker exec <docker container name> bash -c "cd root;npm install"
echo "done"
推荐阅读
- android - 如何同时监听触摸事件和软键盘事件
- svg - 围绕其中心旋转可缩放和翻译的 SVG 元素
- c++ - 如何使用 const 键复制 unordered_map?
- sql - NULLIF 返回现有值的第一个字符而不是整个值
- java - 身份方法有什么作用,通用单例java
- datetime - Delphi:到 DateTime 的 UnixTime 字符串给出了意外的结果
- c# - Microsoft Store 中 UWP 应用的崩溃报告
- nestjs - 记录不会使用 Nestjs 和 TypeOrm 保存到数据库(查询有效)
- node.js - 对托管在 Google Compute Engine 上的 Docker 节点应用的初始调用需要 30-45 秒响应
- admob - 用 admob ane 看不到广告