终端进度条未在Docker控制台中显示。

3

我正在尝试使用npm的终端进度条来更好地可视化长时间进程的进展。当我从标准的“node index.js”运行它时,一切顺利,但是当从简单的docker镜像运行时,终端上没有任何内容显示。我的index.js代码如下:

const _cliProgress = require('cli-progress');

// create a new progress bar instance and use shades_classic theme
const bar1 = new _cliProgress.Bar({}, _cliProgress.Presets.shades_classic);

// start the progress bar with a total value of 200 and start value of 0
bar1.start(200, 0);

// update the current value in your application..
bar1.update(100);

// stop the progress bar
bar1.stop();

这是我的 Docker 文件:
FROM node:latest

#create work directory
RUN mkdir -p /src

#establish the app folder as the work directory
WORKDIR /src

COPY package.json /src

COPY package-lock.json /src

RUN npm i

COPY . /src

CMD [ "node", "index.js" ]

终端没有显示这些软件包的任何信息,但是可以显示正常的console.logs。我尝试使用其他的软件包时也存在这个问题。如果有关于为什么出现了与预期不同的结果的任何信息,将不胜感激。谢谢。
1个回答

4

1
非常感谢!运行得非常好。 - Connor Campbell
如果您有时间,我还有一个问题,如果我在docker-compose swarm(?)中运行它,那么复制它的过程是什么?会在镜像的yml节点中使用"tty: true"吗? - Connor Campbell
1
是的,在docker-compose.yml中的等效设置是 tty: true - Marcos Casagrande

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接