Терминальные индикаторы не отображаются в консоли Docker. - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь включить один из терминалов прогресса npm, чтобы лучше представить, как долго продвигается процесс. Когда я запускаю его из стандартного «узла index.js», он отключается без помех, но при запуске из простого образа докера на терминал ничего не отправляется. Мой 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();

А это мой файл докера:

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 Ответ

0 голосов
/ 03 мая 2018

Вы должны запустить Docker с флагом --tty , -t, который выделит псевдо-TTY

docker run -t --rm test

Вы можете проверить следующие вопросы для более подробного объяснения этого флага:

Запутался в опции Docker -t для выделения псевдо-TTY

Что значит прикрепить tty / std-in-out к докерам или lxc?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...