暴躁的人字拖 · 定了!北京环球影城门票418元起!进京机票搜 ...· 1 月前 · |
玩足球的铅笔 · 《魅力汕头•活力特区》英文版在美国《国际日报 ...· 5 月前 · |
坚强的小熊猫 · 明朝特低调的皇帝,在位时间仅6年,却挣回了世 ...· 1 年前 · |
深情的鸵鸟 · 讲座︱娜塔莎之舞:俄国史的核心意象与研究转向 ...· 1 年前 · |
千杯不醉的黑框眼镜 · 网易股票(NTES) - 知乎· 1 年前 · |
我有这样的命令来启动这样的Node.js have服务器:
node --inspect=0.0.0.0:9229 --preserve-symlinks /app/api/dist/server.js | pino-pretty
我把它作为
CMD
放到一个Dockerfile中
CMD ["node", "--inspect=0.0.0.0:9229", "--preserve-symlinks" ,"/app/api/dist/server.js", "|","pino-pretty"]
该服务在调用
docker run
时启动,但
|
被忽略,因此不会将日志转发给
pino-pretty
。
我在这里做错什么了?
我可以将整个命令放入
start.sh
或使用
CMD ["npm", "run", "start:prod"]
,但我想了解核心问题。
发布于 2021-11-28 14:58:02
我可以将整个命令放入start.sh或使用CMD "npm“、"run”、"start:prod“,但我想了解核心问题。
管道是一个shell结构,例如
/bin/sh
、
/bin/bash
和类似的shell的特性。当您使用json/exec语法定义CMD时,您将显式地告诉docker在没有shell的情况下运行命令。因此,您需要在脚本中运行命令,显式调用shell,或者使用字符串/shell语法运行以让停靠程序使用shell执行命令:
CMD node --inspect=0.0.0.0:9229 --preserve-symlinks /app/api/dist/server.js | pino-pretty
https://stackoverflow.com/questions/70144303
复制相似问题
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2024 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号: 粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
千杯不醉的黑框眼镜 · 网易股票(NTES) - 知乎 1 年前 |